-
Bean的XML配置
- 基于xml配置
- 基于注解进行配置
-
Bean的创建
<bean id="hello" class="beans.HelloService" />
在Spring容器中管理的Bean对象,可以在声明时通过scope属性或相关注解指定其作用域,最常用的是singleton,prototype。
singleton
这个作用域标识的对象具备全局唯一性,创建时只会创建一个对象
,不会重复创建新的对象。系统默认情况下时singleton标识prototype
这个作用域标示的对象每次获取都会创建新的对象思考:
1.Spring为什么要为Bean设置作用域(更好的管理内存)
2.假如没有Spring如何保证一个类的实例具备全局唯一性?(单例模式)
3.单利模式如何实现,有哪些实现方式,这些实现方式有什么不同? -
Bean的生命周期
在Spring框架应用中,所有的Bean对象都有生命周期,Bean对象的生命周期是指对象的创建,初始化,服务,销毁这个过程。可以通过Init-methos,destroy-metho的属性指定生命周期方法。
在Spring应用由Spring创建的对象是否是由spring销毁还得取决于作用域的配置。例如:
1.singleton作用域的对象可以在容器关闭时被销毁
2.prototype作用域的对象可以由容器创建对象,初始化对象,但不能销毁对象。 -
Bean的延迟加载
在spring中,容器默认初始化时会构建所有由spring管理的所有的bean对象。但假如这些对象长时间不使用还占用内存就会造成一定的资源浪费。为解决这个问题,Spring设计了延迟加载机制。通过这种机制来提高系统资源的使用。
Spring中的延迟加载需要使用bean元素中的lazy-init属性或beans中的default-lazy-init=“true”属性进行设置,二者的应用的不同点:
1.lazy-init:应用在bean标签中用于指定这个bean的加载策略
2.default-lazy-init:应用在beans标签中用于指定所有的bean的加载策略
Spring——bean对象相关认识
最新推荐文章于 2024-05-31 15:27:54 发布