SpringIOC容器对Bean的管理

目录

 

对Bean的实例化管理

1.默认情况下调用类的无参构造方法进行

2.通过普通工厂进行对象实例化

3.通过静态工厂进行对象的实例化

​编辑spring对于bean的作用域

解释:

 补充:

spring对于bean的声明周期

spring管理Bean的自动装配

自动装配含义:

编写语法:

 属性值:

注意事项 :


对Bean的实例化管理

1.默认情况下调用类的无参构造方法进行

2.通过普通工厂进行对象实例化

3.通过静态工厂进行对象的实例化

spring对于bean的作用域

解释:

     bean在spring容器中创建的策略【即:单例和多例】以及访问的返完为范围

 补充:

   管理的bean可以通过BeanFactory[多例]和ApplicationContext[单例]来控制,

   还可以通过自己来设置作用域

编写位置:bean标签的属性

语法:scope="属性值"

属性值:

singleton: 单例模式【全局唯一   ====性能好   ====安全性低(默认方式)】
prototype:多例模式【全局不唯一====性能不好====安全性高】


作用域数据Web模块:
request:           一次请求创建一个对象
session:           一个会话创建一个对象

spring对于bean的声明周期

前提是单例模式下大致分为以下五个阶段:【以后会详细讲解

1.实例化

2.属性赋值(DI,即依赖注入)

3.初始化  :实例化完成之后,立刻干的事【自动初始化】,有两种方式

   3.1 接口初始化:实现InitializingBean接口中的afterPropertiesSet()

   3.2 属性初始化:bean中的init-method属性绑定自己指定方法

4.使用操作:步骤3完成后,对象创建完整,能够直接使用

5.销毁:

    5.1 接口销毁

    5.2 属性销毁: bean中的destroy-method= “指定方法 ”

 注意:只有垃圾回收机制才能销 

解决办法:bean变为单例,关闭ApplicationContext容器,间接销毁了bean,带走单例创建                     的JavaBean 。

       applicationContext没有close()方法,子类ClassPathXmlApplicatoinContext中有

spring管理Bean的自动装配

先了解手动注入【标签注入】

    构造和setter注入,在上一篇文章中有讲解

自动装配含义:

           将对象用DI的编程思想 ,自动注入给调用者【替换标签】

编写位置:bean与 bean标签属性 

编写语法:

      autowire =" 属性值"     局部设置【只涉及一个bean】

      default-autowire=" 属性值"   全局设置【在beans根标签中】

 属性值:

byType按照Bean的类型 【类型:属性类型与Bean的class类型一致】
byName按照Bean的 id 属性
constructor按照Bean的类型通过构造方法注入 

注意事项 :

1.按照类型装配,避免容器中有相同类型
2.按照名字装配,要保证需要的对象名在spring容器中有对应的id
3.可以同时进行全局与局部设置,就近原则
4.自动装配能简化代码配置,但是在大型项目中不推荐使用,可读性差

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值