Spring in Action学习笔记<三>

高级装配

Spring profile解决了Spring bean要跨各种部署环境的通用问题。在运行时,通过将环境相关的bean与当前激活的profile进行匹配,Spring能够让相同a的部署单元跨多种环境运行,而不需要进行重修构建。

profile配置与激活

1.配置profile
a.@Profile,@Conditional(ProfileCondition.class)
b.元素的profile属性
2.激活profile
spring.profile.active这个属性,有多种方式来设置。

条件化bean

1.@Conditional注解
@Conditional注解可以用到带有@Bean注解的方法上,如果给定的条件计算结果为true,就会创建这个bean,否则,这个bean会被忽略。@Conditional会通过Cbondition接口的matches()方法进行对比,设置给@Conditional的类需要实现自己的matches()方法。
2.处理自动装配的歧义性
仅有一个bean匹配所需结果时,自动装配才是有效的,如果不仅有一个bean能够匹配结果的话,这种歧义性会阻碍Spring的自动装配。
a.标示首选的bean @Primary 
b.限定自动装配的bean @Qualifier("")注解所设置的参数就是想要注入的bean的ID,即为首字母变为小写的类名。

bean的作用域

单例(Singleton):在整个应用中只创建一个bean实例
原型(Prototype):每次注入或者通过Spring应用上下文获取的时候,都会创建一个新的bean实例
会话(Session):为每个会话创建一个bean实例
请求(Request):为每个请求创建一个bean实例
@Scope注解可选择其他的作用域,xml配置使用

运行时注入

Spring提供了两种在运行时求值的方式
1.属性占位符 @Value("${}")
2.Spring表达式语言 

你可能感兴趣的:(java,后端,spring)