一、bean的概述
该文章开始,将会系统的按照Spring官方文档进行案例演示。因为官方文档结构非常棒。
如果全部写在这篇文章中会比较长,所以有一些文章我拆分出去了。这篇文章就相当一个总览。
结构:
- 1.实例化bean对象(三种方式)
- 命名bean(请参考下文:1.alias标签(别名))
- 2.bean对象的作用域
- 3.依赖注入(基于构造器)
- 4.依赖注入(基于setter)
- 5.依赖注入(扩展)
- 6.自动装配
- 延迟初始化bean(请参考下文:1.Lazy-initialized Beans)
---- 分割线 -----
命名bean
1.alias标签(别名)
我们可以给对象取别名。
例如,我现在配置文件中配置了一个user1对象,然后我在alias标签中,给这个对象取别名为u。此时如果我需要从ApplicationContext容器中取这个对象时,我可以使用u取到,而不需要使用user1。当然你使用user1也可以取到该对象。
<bean id="user1" class="com.shengjava.pojo.User">
<property name="name" value="长生"/>
</bean>
<!-- 给id为user1的对象,取别名为u和u1 -->
<alias name="user1" alias="u"/>
还有另外一种取别名的方式,就是在bean标签中的name属性中配置。
例如,我现在给user1对象取别名,命名为u和u1,此时我可以从ApplicationContext对象中,使用u或u1都能取到该对象。
<bean id="user1" class="com.shengjava.pojo.User" name="u,u1">
<property name="name" value="长生"/>
</bean>
延迟初始化bean
1.Lazy-initialized Beans
默认情况下,ApplicationContext容器在初始化的时候,会去创建所有单例的bean对象(默认bean对象作用域时就是单例的 ,详情请看bean对象的作用域)。
如果你不想IoC容器(ApplicationContext容器)在初始化(启动)时就创建对象,你可以设置bean对象的属性lazy-init=“true”,这样该对象会在首次请求该对象时才进行创建bean对象。
<!-- 开启延迟初始化 -->
<bean id="user" class="com.shengjava.pojo.User" lazy-init="true"/>
如果你觉得在每一个bean上都加上 lazy-init=“true” 太繁琐了,你可以如下这样配置,效果同上。
<beans default-lazy-init="true">
<!-- no beans will be pre-instantiated... -->
</beans>
参考自:1.4.4. Lazy-initialized Beans
扩展
1.import标签(导入)
xml中我们还可以使用import标签,导入其他的xml配置文件。
比如将其他的xxx.xml配置全部导入到applicationContext.xml配置中,便于管理。
例如,我现在有一个叫做applicationContext.xml的配置文件,我可以在该文件中,使用import表情,导入beans2.xml配置文件。
语法:
<import resource="beans2.xml"/>
参考:Composing XML-based Configuration Metadata
相关
我的该分类的其他相关文章,请点击:【Spring + Spring MVC + MyBatis】文章目录