Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
爱吃血肠
spring-framework
提交
9adb01a4
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,发现更多精彩内容 >>
提交
9adb01a4
编写于
2月 15, 2010
作者:
J
Juergen Hoeller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
added PropertyPlaceholderConfigurer test
上级
b3b4c7aa
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
27 addition
and
9 deletion
+27
-9
org.springframework.context/src/test/java/org/springframework/context/annotation/configuration/ConfigurationClassProcessingTests.java
...tion/configuration/ConfigurationClassProcessingTests.java
+27
-9
未找到文件。
org.springframework.context/src/test/java/org/springframework/context/annotation/configuration/ConfigurationClassProcessingTests.java
浏览文件 @
9adb01a4
...
...
@@ -25,10 +25,12 @@ import org.springframework.beans.factory.BeanFactory;
import
org.springframework.beans.factory.NoSuchBeanDefinitionException
;
import
org.springframework.beans.factory.annotation.Required
;
import
org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.config.BeanDefinition
;
import
org.springframework.beans.factory.config.BeanFactoryPostProcessor
;
import
org.springframework.beans.factory.config.BeanPostProcessor
;
import
org.springframework.beans.factory.config.ConfigurableListableBeanFactory
;
import
org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
;
import
org.springframework.beans.factory.parsing.BeanDefinitionParsingException
;
import
org.springframework.beans.factory.support.DefaultListableBeanFactory
;
import
org.springframework.beans.factory.support.RootBeanDefinition
;
...
...
@@ -41,6 +43,7 @@ import org.springframework.context.annotation.ConfigurationClassPostProcessor;
import
org.springframework.context.annotation.Scope
;
import
org.springframework.context.event.ContextRefreshedEvent
;
import
org.springframework.context.support.GenericApplicationContext
;
import
org.springframework.core.PriorityOrdered
;
/**
* Miscellaneous system tests covering {@link Bean} naming, aliases, scoping and error
...
...
@@ -133,15 +136,20 @@ public class ConfigurationClassProcessingTests {
@Test
public
void
configurationWithPostProcessor
()
{
BeanFactory
factory
=
new
AnnotationConfigApplicationContext
(
ConfigWithPostProcessor
.
class
);
AnnotationConfigApplicationContext
factory
=
new
AnnotationConfigApplicationContext
();
factory
.
register
(
ConfigWithPostProcessor
.
class
);
RootBeanDefinition
placeholderConfigurer
=
new
RootBeanDefinition
(
PropertyPlaceholderConfigurer
.
class
);
placeholderConfigurer
.
getPropertyValues
().
add
(
"properties"
,
"myProp=myValue"
);
factory
.
registerBeanDefinition
(
"placeholderConfigurer"
,
placeholderConfigurer
);
factory
.
refresh
();
TestBean
foo
=
factory
.
getBean
(
"foo"
,
TestBean
.
class
);
ITestBean
bar
=
factory
.
getBean
(
"bar"
,
ITestBean
.
class
);
ITestBean
baz
=
factory
.
getBean
(
"baz"
,
ITestBean
.
class
);
assertEquals
(
"foo-processed"
,
foo
.
getName
());
assertEquals
(
"bar-processed"
,
bar
.
getName
());
assertEquals
(
"baz-processed"
,
baz
.
getName
());
assertEquals
(
"foo-processed
-myValue
"
,
foo
.
getName
());
assertEquals
(
"bar-processed
-myValue
"
,
bar
.
getName
());
assertEquals
(
"baz-processed
-myValue
"
,
baz
.
getName
());
SpousyTestBean
listener
=
factory
.
getBean
(
"listenerTestBean"
,
SpousyTestBean
.
class
);
assertTrue
(
listener
.
refreshed
);
...
...
@@ -210,10 +218,13 @@ public class ConfigurationClassProcessingTests {
static
class
ConfigWithPostProcessor
extends
ConfigWithPrototypeBean
{
@Value
(
"${myProp}"
)
private
String
myProp
;
@Bean
public
BeanPostProcessor
beanPostProcessor
()
{
return
new
BeanPostProcessor
()
{
String
nameSuffix
;
public
POBPP
beanPostProcessor
()
{
return
new
POBPP
()
{
String
nameSuffix
=
"-processed-"
+
myProp
;
public
void
setNameSuffix
(
String
nameSuffix
)
{
this
.
nameSuffix
=
nameSuffix
;
}
...
...
@@ -226,15 +237,18 @@ public class ConfigurationClassProcessingTests {
public
Object
postProcessAfterInitialization
(
Object
bean
,
String
beanName
)
{
return
bean
;
}
public
int
getOrder
()
{
return
0
;
}
};
}
@Bean
//
@Bean
public
BeanFactoryPostProcessor
beanFactoryPostProcessor
()
{
return
new
BeanFactoryPostProcessor
()
{
public
void
postProcessBeanFactory
(
ConfigurableListableBeanFactory
beanFactory
)
{
BeanDefinition
bd
=
beanFactory
.
getBeanDefinition
(
"beanPostProcessor"
);
bd
.
getPropertyValues
().
addPropertyValue
(
"nameSuffix"
,
"-processed
"
);
bd
.
getPropertyValues
().
addPropertyValue
(
"nameSuffix"
,
"-processed
-"
+
myProp
);
}
};
}
...
...
@@ -246,6 +260,10 @@ public class ConfigurationClassProcessingTests {
}
public
interface
POBPP
extends
BeanPostProcessor
{
}
private
static
class
SpousyTestBean
extends
TestBean
implements
ApplicationListener
<
ContextRefreshedEvent
>
{
public
boolean
refreshed
=
false
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录