一、注解@Profile("name")||环境与profile
-
可以应用在类级别上或方法级别(用在java的配置代码中)
-
使用注解@ActiveProfiles("name")激活相应的Bean
-
只有Profile在激活状态时,才会创建相应的Bean
二、注解@Conditional(MyCondition.class)||条件化bean
-
创建MyCondition类,实现Condition接口
-
若matches()方法返回true,则所有@Conditional注解上引用MyCondition的Bean都会被创建
三、注解@Primary和自定义限定符注解||处理自动装配的歧义性
-
注解@Primary:标示首选Bean
-
注解@Qualifier("name"):在Java的配置代码中创建限定符,配合@AutoWired注解可使用相应的限定Bean
-
创建自定义的限定符注解代替注解@Qualifier("name")注解(解决@Qualifier命名冲突问题)
四、Bean的作用域
-
默认:单例模式
-
注解@Scope(value):配合@Component或@Bean一起使用,value的值可查看ConfigurableBeanFactory
-
Session和请求作用域(在会话和请求范围内共享Bean)
五、运行时值注入
-
在Java配置的代码中在相应的构造器中直接注入
-
注解@PropertySource("xxx.properties"):声明属性资源
-
使用Environment,env.getProperty(""):检索属性值
-
Environment的其他用法请查看API文档
-
-
属性占位符
-
Spring表达式语言