Spring注入之自动装配、作用域

1.自动装配

在XML配置文件中,可以通过Bean标签的property来指定,Spring容器中 Bean之间的依赖关系,如下:
 

<bean id="targetImplA" class="com.TargetImplA"></bean>
<bean id="sourceA" class="com.cn.SourceA">
     <property name="target">
         <ref bean="targetImplA"></ref>
     </property>
</bean>

但是实际开发中,已经很少进行这样的依赖关系指定了,尤其是Spring boot等微服务开发渐成主流之后,我们越来越多的基于注解的方式来自动装配Bean之间的依赖关系。

自动装配概念(@Autowire注解的由来):Spring IOC容器掌握了容器中所有的Bean信息,通过Java的反射机制,是可以得到类的所有结构信息的,掌握了这些信息,Spring IOC容器就可以,根据一定的规则来自动指定Bean之间的依赖关系。

根据一定的规则,这里得规则主要有四种:
 

规则类型说明
byName根据Bean名称自动匹配,如果这个Bean的成员变量和容器中一个Bean的名称一样,就自动把Bean的名称注入到字段中
byType根据Bean的类型来自动匹配。
constructorBean的构造函数有待注入的参数,则byType规则去注入。(针对构造函数注入而言)
autodetect 

基于注解的方式,默认就是采用  byType 的自动装配规则的。

2. Bean作用域

我们不仅能够定义 Bean之间的依赖关系,还可以定义Bean的作用域。Bean有五种作用域,分别如下:

类型说明
singletonSpring IOC容器中仅存在此Bean的单实例。
prototype每次从IOC容器中获取的都是新的实例。
request一个http request请求中是单实例的,多request之间是不同实例。
session相同http session请求中是单实例的,不同session之间是不同实例。
globalSession相同全局session中是单实例,其余是不同实例。

通过 @Scope 注解指定当前Bean的作用域:
 

@Scope("prototype")
@Service
public class BussinessInfoServiceImpl implements BussinessInfoService

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值