Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
爱吃血肠
spring-framework
提交
2689751c
S
spring-framework
项目概览
爱吃血肠
/
spring-framework
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
spring-framework
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
2689751c
编写于
2月 27, 2009
作者:
C
Chris Beams
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Repackaging to remove remaining cycles and increase cohesion
上级
191b829a
变更
19
隐藏空白更改
内联
并排
Showing
19 changed file
with
153 addition
and
84 deletion
+153
-84
org.springframework.config.java/.springBeans
org.springframework.config.java/.springBeans
+14
-0
org.springframework.config.java/src/main/java/org/springframework/config/java/annotation/Configuration.java
...springframework/config/java/annotation/Configuration.java
+1
-0
org.springframework.config.java/src/main/java/org/springframework/config/java/ext/AbstractMethodInterceptor.java
...gframework/config/java/ext/AbstractMethodInterceptor.java
+2
-2
org.springframework.config.java/src/main/java/org/springframework/config/java/ext/Bean.java
...c/main/java/org/springframework/config/java/ext/Bean.java
+4
-1
org.springframework.config.java/src/main/java/org/springframework/config/java/ext/BeanMethodInterceptor.java
...pringframework/config/java/ext/BeanMethodInterceptor.java
+1
-1
org.springframework.config.java/src/main/java/org/springframework/config/java/ext/BeanRegistrar.java
...va/org/springframework/config/java/ext/BeanRegistrar.java
+3
-1
org.springframework.config.java/src/main/java/org/springframework/config/java/internal/enhancement/CglibConfigurationEnhancer.java
...java/internal/enhancement/CglibConfigurationEnhancer.java
+1
-1
org.springframework.config.java/src/main/java/org/springframework/config/java/internal/enhancement/InitializingBeanRegistrar.java
.../java/internal/enhancement/InitializingBeanRegistrar.java
+1
-1
org.springframework.config.java/src/main/java/org/springframework/config/java/internal/factory/support/ConfigurationModelBeanDefinitionReader.java
...ctory/support/ConfigurationModelBeanDefinitionReader.java
+1
-1
org.springframework.config.java/src/main/java/org/springframework/config/java/internal/parsing/asm/ConfigurationClassMethodVisitor.java
...internal/parsing/asm/ConfigurationClassMethodVisitor.java
+1
-1
org.springframework.config.java/src/main/java/org/springframework/config/java/model/BeanDefinitionRegistrar.java
...gframework/config/java/model/BeanDefinitionRegistrar.java
+1
-2
org.springframework.config.java/src/main/java/org/springframework/config/java/model/ConfigurationModel.java
...springframework/config/java/model/ConfigurationModel.java
+0
-1
org.springframework.config.java/src/main/java/org/springframework/config/java/model/Factory.java
...n/java/org/springframework/config/java/model/Factory.java
+1
-1
org.springframework.config.java/src/main/java/org/springframework/config/java/model/ModelMethod.java
...va/org/springframework/config/java/model/ModelMethod.java
+0
-3
org.springframework.config.java/src/main/java/org/springframework/config/java/model/Validator.java
...java/org/springframework/config/java/model/Validator.java
+1
-2
org.springframework.config.java/src/test/java/test/basic/AbstractJavaConfigTests.java
...ava/src/test/java/test/basic/AbstractJavaConfigTests.java
+14
-0
org.springframework.config.java/src/test/java/test/basic/AutowiredConfigurationTests.java
...src/test/java/test/basic/AutowiredConfigurationTests.java
+39
-0
org.springframework.config.java/src/test/java/test/basic/AutowiredConfigurationTests.xml
.../src/test/java/test/basic/AutowiredConfigurationTests.xml
+14
-0
org.springframework.config.java/src/test/java/test/basic/BasicTests.java
...work.config.java/src/test/java/test/basic/BasicTests.java
+54
-66
未找到文件。
org.springframework.config.java/.springBeans
0 → 100644
浏览文件 @
2689751c
<?xml version="1.0" encoding="UTF-8"?>
<beansProjectDescription>
<version>
1
</version>
<pluginVersion>
<![CDATA[2.2.1.v200811281800]]>
</pluginVersion>
<configSuffixes>
<configSuffix>
<![CDATA[xml]]>
</configSuffix>
</configSuffixes>
<enableImports>
<![CDATA[false]]>
</enableImports>
<configs>
<config>
src/test/java/test/basic/AutowiredConfigurationTests.xml
</config>
</configs>
<configSets>
</configSets>
</beansProjectDescription>
org.springframework.config.java/src/main/java/org/springframework/config/java/annotation/Configuration.java
浏览文件 @
2689751c
...
...
@@ -24,6 +24,7 @@ import java.lang.annotation.Target;
import
org.springframework.beans.factory.annotation.Autowire
;
import
org.springframework.beans.factory.annotation.Required
;
import
org.springframework.config.java.ext.Bean
;
import
org.springframework.stereotype.Component
;
...
...
org.springframework.config.java/src/main/java/org/springframework/config/java/
annotation
/AbstractMethodInterceptor.java
→
org.springframework.config.java/src/main/java/org/springframework/config/java/
ext
/AbstractMethodInterceptor.java
浏览文件 @
2689751c
...
...
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.springframework.config.java.
annotation
;
package
org.springframework.config.java.
ext
;
import
java.lang.reflect.Method
;
...
...
@@ -33,7 +33,7 @@ import org.springframework.util.Assert;
*
* @author Chris Beams
*/
abstract
class
AbstractMethodInterceptor
implements
BeanFactoryAware
,
MethodInterceptor
{
public
abstract
class
AbstractMethodInterceptor
implements
BeanFactoryAware
,
MethodInterceptor
{
protected
final
Log
log
=
LogFactory
.
getLog
(
this
.
getClass
());
protected
DefaultListableBeanFactory
beanFactory
;
...
...
org.springframework.config.java/src/main/java/org/springframework/config/java/
annotation
/Bean.java
→
org.springframework.config.java/src/main/java/org/springframework/config/java/
ext
/Bean.java
浏览文件 @
2689751c
...
...
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.springframework.config.java.
annotation
;
package
org.springframework.config.java.
ext
;
import
java.lang.annotation.Documented
;
import
java.lang.annotation.ElementType
;
...
...
@@ -26,10 +26,13 @@ import java.util.List;
import
org.springframework.beans.factory.annotation.Autowire
;
import
org.springframework.beans.factory.config.BeanDefinition
;
import
org.springframework.beans.factory.support.AbstractBeanDefinition
;
import
org.springframework.config.java.annotation.Configuration
;
import
org.springframework.config.java.model.ConfigurationClass
;
import
org.springframework.config.java.model.ConfigurationModel
;
import
org.springframework.config.java.model.Factory
;
import
org.springframework.config.java.model.ModelMethod
;
import
org.springframework.config.java.model.UsageError
;
import
org.springframework.config.java.model.Validator
;
/**
...
...
org.springframework.config.java/src/main/java/org/springframework/config/java/
annotation
/BeanMethodInterceptor.java
→
org.springframework.config.java/src/main/java/org/springframework/config/java/
ext
/BeanMethodInterceptor.java
浏览文件 @
2689751c
...
...
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.springframework.config.java.
annotation
;
package
org.springframework.config.java.
ext
;
import
static
java
.
lang
.
String
.*;
...
...
org.springframework.config.java/src/main/java/org/springframework/config/java/
annotation
/BeanRegistrar.java
→
org.springframework.config.java/src/main/java/org/springframework/config/java/
ext
/BeanRegistrar.java
浏览文件 @
2689751c
package
org.springframework.config.java.
annotation
;
package
org.springframework.config.java.
ext
;
import
static
java
.
lang
.
String
.*;
import
static
org
.
springframework
.
util
.
StringUtils
.*;
...
...
@@ -13,6 +13,8 @@ import org.springframework.beans.factory.config.BeanDefinition;
import
org.springframework.beans.factory.config.ConfigurableListableBeanFactory
;
import
org.springframework.beans.factory.support.BeanDefinitionRegistry
;
import
org.springframework.beans.factory.support.RootBeanDefinition
;
import
org.springframework.config.java.annotation.Configuration
;
import
org.springframework.config.java.model.BeanDefinitionRegistrar
;
import
org.springframework.config.java.model.ConfigurationClass
;
import
org.springframework.config.java.model.MalformedJavaConfigurationException
;
import
org.springframework.config.java.model.ModelMethod
;
...
...
org.springframework.config.java/src/main/java/org/springframework/config/java/internal/enhancement/CglibConfigurationEnhancer.java
浏览文件 @
2689751c
...
...
@@ -40,8 +40,8 @@ import org.springframework.beans.factory.BeanFactoryAware;
import
org.springframework.beans.factory.InitializingBean
;
import
org.springframework.beans.factory.support.BeanDefinitionRegistry
;
import
org.springframework.beans.factory.support.DefaultListableBeanFactory
;
import
org.springframework.config.java.annotation.BeanDefinitionRegistrar
;
import
org.springframework.config.java.annotation.Configuration
;
import
org.springframework.config.java.model.BeanDefinitionRegistrar
;
import
org.springframework.config.java.model.ConfigurationClass
;
import
org.springframework.config.java.model.ConfigurationModel
;
import
org.springframework.config.java.model.ModelMethod
;
...
...
org.springframework.config.java/src/main/java/org/springframework/config/java/internal/enhancement/InitializingBeanRegistrar.java
浏览文件 @
2689751c
...
...
@@ -18,7 +18,7 @@ package org.springframework.config.java.internal.enhancement;
import
java.lang.reflect.Method
;
import
org.springframework.beans.factory.support.BeanDefinitionRegistry
;
import
org.springframework.config.java.
annotation
.BeanDefinitionRegistrar
;
import
org.springframework.config.java.
model
.BeanDefinitionRegistrar
;
import
org.springframework.config.java.model.ModelMethod
;
class
InitializingBeanRegistrar
implements
BeanDefinitionRegistrar
{
...
...
org.springframework.config.java/src/main/java/org/springframework/config/java/internal/factory/support/ConfigurationModelBeanDefinitionReader.java
浏览文件 @
2689751c
...
...
@@ -33,9 +33,9 @@ import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import
org.springframework.beans.factory.support.GenericBeanDefinition
;
import
org.springframework.beans.factory.support.RootBeanDefinition
;
import
org.springframework.config.java.annotation.Configuration
;
import
org.springframework.config.java.annotation.Factory
;
import
org.springframework.config.java.model.ConfigurationClass
;
import
org.springframework.config.java.model.ConfigurationModel
;
import
org.springframework.config.java.model.Factory
;
import
org.springframework.config.java.model.ModelMethod
;
import
org.springframework.config.java.plugin.Extension
;
import
org.springframework.config.java.plugin.ExtensionAnnotationBeanDefinitionRegistrar
;
...
...
org.springframework.config.java/src/main/java/org/springframework/config/java/internal/parsing/asm/ConfigurationClassMethodVisitor.java
浏览文件 @
2689751c
...
...
@@ -29,8 +29,8 @@ import org.objectweb.asm.Label;
import
org.objectweb.asm.MethodAdapter
;
import
org.objectweb.asm.Opcodes
;
import
org.springframework.config.java.annotation.Configuration
;
import
org.springframework.config.java.annotation.Factory
;
import
org.springframework.config.java.model.ConfigurationClass
;
import
org.springframework.config.java.model.Factory
;
import
org.springframework.config.java.model.ModelClass
;
import
org.springframework.config.java.model.ModelMethod
;
...
...
org.springframework.config.java/src/main/java/org/springframework/config/java/
annotation
/BeanDefinitionRegistrar.java
→
org.springframework.config.java/src/main/java/org/springframework/config/java/
model
/BeanDefinitionRegistrar.java
浏览文件 @
2689751c
package
org.springframework.config.java.
annotation
;
package
org.springframework.config.java.
model
;
import
java.lang.reflect.Method
;
import
org.springframework.beans.factory.support.BeanDefinitionRegistry
;
import
org.springframework.config.java.model.ModelMethod
;
/**
* Registers bean definition(s) for a particular method, usually based on its annotation metadata.
...
...
org.springframework.config.java/src/main/java/org/springframework/config/java/model/ConfigurationModel.java
浏览文件 @
2689751c
...
...
@@ -21,7 +21,6 @@ import java.util.ArrayList;
import
java.util.List
;
import
org.springframework.config.java.annotation.Configuration
;
import
org.springframework.config.java.annotation.Validator
;
/**
...
...
org.springframework.config.java/src/main/java/org/springframework/config/java/
annotation
/Factory.java
→
org.springframework.config.java/src/main/java/org/springframework/config/java/
model
/Factory.java
浏览文件 @
2689751c
...
...
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.springframework.config.java.
annotation
;
package
org.springframework.config.java.
model
;
import
java.lang.annotation.Documented
;
import
java.lang.annotation.ElementType
;
...
...
org.springframework.config.java/src/main/java/org/springframework/config/java/model/ModelMethod.java
浏览文件 @
2689751c
...
...
@@ -28,9 +28,6 @@ import java.util.Set;
import
net.sf.cglib.proxy.Callback
;
import
net.sf.cglib.proxy.NoOp
;
import
org.springframework.config.java.annotation.BeanDefinitionRegistrar
;
import
org.springframework.config.java.annotation.Factory
;
import
org.springframework.config.java.annotation.Validator
;
import
org.springframework.util.Assert
;
...
...
org.springframework.config.java/src/main/java/org/springframework/config/java/
annotation
/Validator.java
→
org.springframework.config.java/src/main/java/org/springframework/config/java/
model
/Validator.java
浏览文件 @
2689751c
package
org.springframework.config.java.
annotation
;
package
org.springframework.config.java.
model
;
import
java.util.List
;
import
org.springframework.config.java.model.UsageError
;
/** Marker interface */
//TODO: SJC-242 document
...
...
org.springframework.config.java/src/test/java/test/basic/AbstractJavaConfigTests.java
0 → 100644
浏览文件 @
2689751c
package
test.basic
;
import
org.junit.Before
;
public
abstract
class
AbstractJavaConfigTests
{
@Before
public
void
setUp
()
{
}
//protected
}
org.springframework.config.java/src/test/java/test/basic/AutowiredConfigurationTests.java
0 → 100644
浏览文件 @
2689751c
package
test.basic
;
import
static
org
.
hamcrest
.
CoreMatchers
.*;
import
static
org
.
junit
.
Assert
.*;
import
org.junit.Test
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.config.java.annotation.Configuration
;
import
org.springframework.config.java.ext.Bean
;
import
org.springframework.context.support.ClassPathXmlApplicationContext
;
import
test.beans.Colour
;
import
test.beans.TestBean
;
public
class
AutowiredConfigurationTests
{
public
@Test
void
test
()
{
ClassPathXmlApplicationContext
factory
=
new
ClassPathXmlApplicationContext
(
AutowiredConfigurationTests
.
class
.
getSimpleName
()
+
".xml"
,
AutowiredConfigurationTests
.
class
);
assertThat
(
factory
.
getBean
(
"colour"
,
Colour
.
class
),
equalTo
(
Colour
.
RED
));
assertThat
(
factory
.
getBean
(
"testBean"
,
TestBean
.
class
).
getName
(),
equalTo
(
Colour
.
RED
.
toString
()));
}
@Configuration
static
class
AutowiredConfig
{
private
@Autowired
Colour
colour
;
public
@Bean
TestBean
testBean
()
{
return
new
TestBean
(
colour
.
toString
());
}
}
@Configuration
static
class
ColorConfig
{
public
@Bean
Colour
colour
()
{
return
Colour
.
RED
;
}
}
}
org.springframework.config.java/src/test/java/test/basic/AutowiredConfigurationTests.xml
0 → 100644
浏览文件 @
2689751c
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns=
"http://www.springframework.org/schema/beans"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"
xmlns:context=
"http://www.springframework.org/schema/context"
>
<context:annotation-config/>
<bean
class=
"org.springframework.config.java.process.ConfigurationPostProcessor"
/>
<bean
class=
"test.basic.AutowiredConfigurationTests$AutowiredConfig"
/>
<bean
class=
"test.basic.AutowiredConfigurationTests$ColorConfig"
/>
</beans>
org.springframework.config.java/src/test/java/test/basic/BasicTests.java
浏览文件 @
2689751c
...
...
@@ -5,13 +5,12 @@ import static org.junit.Assert.*;
import
static
org
.
springframework
.
beans
.
factory
.
support
.
BeanDefinitionBuilder
.*;
import
org.junit.Test
;
import
org.springframework.beans.BeansException
;
import
org.springframework.beans.factory.BeanFactory
;
import
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor
;
import
org.springframework.beans.factory.config.BeanDefinition
;
import
org.springframework.beans.factory.config.BeanFactoryPostProcessor
;
import
org.springframework.beans.factory.config.ConfigurableListableBeanFactory
;
import
org.springframework.beans.factory.support.DefaultListableBeanFactory
;
import
org.springframework.config.java.annotation.Bean
;
import
org.springframework.config.java.annotation.Configuration
;
import
org.springframework.config.java.ext.Bean
;
import
org.springframework.config.java.process.ConfigurationPostProcessor
;
import
org.springframework.config.java.util.DefaultScopes
;
...
...
@@ -19,46 +18,54 @@ import test.beans.ITestBean;
import
test.beans.TestBean
;
public
class
BasicTests
{
@Test
public
void
test
()
{
DefaultListableBeanFactory
factory
=
new
DefaultListableBeanFactory
();
factory
.
registerBeanDefinition
(
"config"
,
rootBeanDefinition
(
Config
.
class
).
getBeanDefinition
());
Config
config
=
factory
.
getBean
(
"config"
,
Config
.
class
);
assertThat
(
config
,
notNullValue
());
}
@Test
public
void
test2
()
{
/**
* Creates a new {@link BeanFactory}, populates it with a {@link BeanDefinition} for
* each of the given {@link Configuration} <var>configClasses</var>, and then post-processes
* the factory using JavaConfig's {@link ConfigurationPostProcessor}. When complete,
* the factory is ready to service requests for any {@link Bean} methods declared by
* <var>configClasses</var>.
*
* @param configClasses the {@link Configuration} classes under test. may be an empty list.
*
* @return fully initialized and post-processed {@link BeanFactory}
*/
private
static
BeanFactory
initBeanFactory
(
Class
<?>...
configClasses
)
{
DefaultListableBeanFactory
factory
=
new
DefaultListableBeanFactory
();
factory
.
registerBeanDefinition
(
"config"
,
rootBeanDefinition
(
Config
.
class
).
getBeanDefinition
());
BeanFactoryPostProcessor
bfpp
=
new
MyPostProcessor
();
for
(
Class
<?>
configClass
:
configClasses
)
{
String
configBeanName
=
configClass
.
getName
();
factory
.
registerBeanDefinition
(
configBeanName
,
rootBeanDefinition
(
configClass
).
getBeanDefinition
());
}
bfpp
.
postProcessBeanFactory
(
factory
);
new
ConfigurationPostProcessor
().
postProcessBeanFactory
(
factory
);
factory
.
addBeanPostProcessor
(
new
AutowiredAnnotationBeanPostProcessor
());
OtherConfig
config
=
factory
.
getBean
(
"config"
,
OtherConfig
.
class
);
assertThat
(
config
,
notNullValue
());
return
factory
;
}
@Test
public
void
test3
()
{
DefaultListableBeanFactory
factory
=
new
DefaultListableBeanFactory
();
factory
.
registerBeanDefinition
(
"config"
,
rootBeanDefinition
(
Config
.
class
).
getBeanDefinition
());
new
ConfigurationPostProcessor
().
postProcessBeanFactory
(
factory
);
public
void
simplestPossibleConfiguration
()
{
BeanFactory
factory
=
initBeanFactory
(
SimplestPossibleConfig
.
class
);
String
stringBean
=
factory
.
getBean
(
"stringBean"
,
String
.
class
);
assertThat
(
stringBean
,
equalTo
(
"foo"
));
}
@Configuration
static
class
SimplestPossibleConfig
{
public
@Bean
String
stringBean
()
{
return
"foo"
;
}
}
@Test
public
void
test4
()
{
DefaultListableBeanFactory
factory
=
new
DefaultListableBeanFactory
();
factory
.
registerBeanDefinition
(
"config"
,
rootBeanDefinition
(
Config2
.
class
).
getBeanDefinition
());
new
ConfigurationPostProcessor
().
postProcessBeanFactory
(
factory
);
public
void
configurationWithPrototypeScopedBeans
()
{
BeanFactory
factory
=
initBeanFactory
(
ConfigWithPrototypeBean
.
class
);
TestBean
foo
=
factory
.
getBean
(
"foo"
,
TestBean
.
class
);
ITestBean
bar
=
factory
.
getBean
(
"bar"
,
ITestBean
.
class
);
...
...
@@ -67,44 +74,25 @@ public class BasicTests {
assertThat
(
foo
.
getSpouse
(),
sameInstance
(
bar
));
assertThat
(
bar
.
getSpouse
(),
not
(
sameInstance
(
baz
)));
}
}
class
MyPostProcessor
implements
BeanFactoryPostProcessor
{
public
void
postProcessBeanFactory
(
ConfigurableListableBeanFactory
beanFactory
)
throws
BeansException
{
BeanDefinition
beanDefinition
=
beanFactory
.
getBeanDefinition
(
"config"
);
beanDefinition
.
setBeanClassName
(
OtherConfig
.
class
.
getName
());
}
}
@Configuration
class
Config
{
public
@Bean
String
stringBean
()
{
return
"foo"
;
}
}
@Configuration
class
Config2
{
public
@Bean
TestBean
foo
()
{
TestBean
foo
=
new
TestBean
(
"foo"
);
foo
.
setSpouse
(
bar
());
return
foo
;
}
public
@Bean
TestBean
bar
()
{
TestBean
bar
=
new
TestBean
(
"bar"
);
bar
.
setSpouse
(
baz
());
return
bar
;
}
@Bean
(
scope
=
DefaultScopes
.
PROTOTYPE
)
public
TestBean
baz
()
{
return
new
TestBean
(
"bar"
);
@Configuration
static
class
ConfigWithPrototypeBean
{
public
@Bean
TestBean
foo
()
{
TestBean
foo
=
new
TestBean
(
"foo"
);
foo
.
setSpouse
(
bar
());
return
foo
;
}
public
@Bean
TestBean
bar
()
{
TestBean
bar
=
new
TestBean
(
"bar"
);
bar
.
setSpouse
(
baz
());
return
bar
;
}
@Bean
(
scope
=
DefaultScopes
.
PROTOTYPE
)
public
TestBean
baz
()
{
return
new
TestBean
(
"bar"
);
}
}
}
class
OtherConfig
{
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录