spring的学习(二)

  1. 对象的创建时机:

 

执行的步骤:13 2 

  

以上两种情况是默认值,当spring容器启动的时候创建对象

 

bean里面的lazy-init属性:   

    

      Default 相当于false   spring容器启动的时候,创建对象

      Truecontext.getBean时创建对象

       Falsespring容器启动的时候创建对象

意义:如果把lazy-init设置为true,则spring容器再启动的时候检测不到任何错误,这样存在很大的安全隐患,所以一般设置成false或者default但是如果一个bean中有一个属性,该属性含有大量的数据,这个时候不希望该bean过早的停留在内存中。

这个时候需要用到lazy-inittrue

 

对象的作用域:

默认情况下(scope=singleton):放入到spring中的bean是单例的,将来service层和dao层所有的类都将放入到spring容器中,所以默认情况下这两层的类的实例都是单例的,所以不能把数据声明到属性中。如果声明到属性中,就会成为共享的。

scope=prototype(每次调用创建新的bean对象)



创建时机和scope的结合:

scope=prototypelazy-init=true:在context.getBean的时候创建对象

scope=prototypelazy-init=false:在context.getBean的时候创建对象,lazy-init=false失效。当scope=prototype时,始终是context.getBean的时候创建对象

因为Scopseprototype,这个实例就变为多例的,lazy-init如果为false,一开始就创建该实例是没有意义的,所以这时候lazy-init默认为true;

scope=singleton:是默认情况


initdestroy的方法:


说明:

1  init方法是由spring内部执行的

2  只有当spring容器关闭以后才能执行destroy方法,spring容器一般情况下是不会关闭的。只有当web容器销毁掉的时候才可能关闭掉,所以只要一个对象在spring容器中,在spring容器关闭之前,会一直保留。

        3  如果一个bean的配置是scope”prototype”,则spring容器不负责销毁。    

   spring容器所做的事情:


总结:

   创建对象

1对象的创建方式

2对象的创建时机

3对象的创建的模式

4Initdestroy

5创建时机和创建模式的结合

   初始化和销毁


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值