SpringIOC

Bean的生命周期

  • 名称:init-method,destroy-method
  • 类型:属性
  • 归属:Bean标签
  • 作用:定义ben对象在初始化或销毁时完成工作
  • 取值:bean对应的类中对应的方法名
  • 规则:
    • 当scop=“singleton”单例时,spring容器中且有且仅有一个对象,init方法在创建容器时仅执行一次
    • 当scop=“prototype”为非单例时,spring容器要创建同一类型的多个对象,itit方法会在创建每个对象时执行一次
    • 当scop=“singleton”单例时,关闭容器会导致bean实例被销毁,调用destroy方法一次
    • 当scop="prototype"为非单例时,对象的销毁由垃圾回收机制gc()控制,destroy不会执行,spring只负责创建,而销毁不会由spring来管理

依赖注入

set注入(主流)
  • 名称:property
  • 类型:标签
  • 归属:bean标签
  • 作用:使用set方法的形式为bean提供资源
  • 基本属性:
<bean>  
    <property name="propertyName" value="propertyValue" ref="beanId">
</bean>
    name:对应bean中的属性名,要求该属性必须提供可访问的set方法
    value:设定非引用类型属性对应的值,不能与ref同时使用,可以是八大数据类型和string
    ref:设定引用类型属性对应的值,不能与value同时使用
构造器注入
  • 名称:constructor-arg

  • 类型:标签

  • 归属:bean标签

  • 作用:使用构造方法的形式为bean提供资源,兼容早期遗留系统的升级工作

    <bean>  
        <constructor-arg name="argsName" value="argsValue">
    </bean>
        name:对应bean中的构造方法所携带的参数名
        value:设定非引用类型构造方法参数对应的值,不能与ref同时使用
       注意:一个bean中科院有多个constructor-arg标签
    
集合类型数据注入
  • 名称:array,list,set,map,props

  • 类型:标签

  • 归属:property标签或constructor-arg标签

  • 作用:注入集合数据类型属性

ApplicationContext和BeanFactory有什么区别?

1.BeanFactory创建bean采用延迟加载形式,也就是说你需要getBean()才会加载

2.ApplicationContext创建Bean默认采用立即加载,ApplicationContext继承了BeanFactory

如何控制Bean的加载顺序?

使用@DependsOn即可控制Bean的加载顺序

  • 配置在方法上,将优先于@Bean配置的bean进行加载
  • 配置在类上,将优先于当前类中所有@Bean配置的Bean进行加载
  • 配置在类上,将优先于@Compent等配置的Bean进行加载
  • 相关属性:value(默认),设置当前bean所依赖的bean的id
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值