Spring in Action学习笔记三

高级装配

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

profile配置与激活

1.配置profile
a.@Profile,@Conditional(ProfileCondition.class)
b.<beans>元素的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 <bean primary="true"/>
b.限定自动装配的bean @Qualifier("")注解所设置的参数就是想要注入的bean的ID,即为首字母变为小写的类名。

bean的作用域

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

运行时注入

Spring提供了两种在运行时求值的方式
1.属性占位符 @Value("${}")
2.Spring表达式语言 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值