对Spring IOC容器相关整理
Posted hxz-nl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对Spring IOC容器相关整理相关的知识,希望对你有一定的参考价值。
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd" > <description>rabbitmq 连接服务配置</description> <!--步骤1、配置链接工厂--> <bean id="connectionFactory" class="org.springframework.amqp.rabbit.connection.CachingConnectionFactory"> <property name="host" value="$mq.address"/> <property name="port" value="$mq.port"/> <property name="password" value="$mq.pwd"/> <property name="username" value="$mq.user"/> <property name="publisherConfirms" value="true"/> <property name="publisherReturns" value="true"/> <property name="virtualHost" value="$mq.vhost"/> <property name="requestedHeartBeat" value="50"/> </bean> //....... </beans>
对于配置XML文件 Spring 提供了很多的元素和属性,用于对对象与其依赖关系进行描述。Spring的XML文件就像一张记录详细配料,火候等的菜谱。对于Spring XML文件,我们一般通过以<beans>....</beans>包围的元素开始配置。
有关http://www.springframework.org/schema/beans 中对于beans 的定义可参见:标签系列一:spring 中beans解释以及beans标签里面的属性
接下来我要整理一下关于beans 的相关的元素及属性:
beans命名空间下的元素
通过编辑器可以轻易的找到在beans命名空间下,存在beans、bean、alias、description、import 五个元素存在。(也可能是4个, 在http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 版中没有beans元素,4.0版存在(默认最新版请把上文中的-3.0 去掉))
1.1、beans元素
beans元素是顶层(通常为根)元素。允许定义所有嵌套bean定义的默认值。
beans元素有自己的属性:
1.1.1、default-autowire 属性:
default-autowire 有五个值 分别如下:
默认的值为:no 即不启用自动注入。
default:实际上是会优先执行constructor然后是byType
byType:这个是会根据类型去注入,当找到了会直接注入,没有找到不会报错,但是找到多个会报No unique bean of type的错误
byName:这个会根据name注入
constructor:这个是通过构造注入
no:不启用自动注入
1.1.2、default-autowire-candidates 属性:
default-autowire-candidates是候选者,自动装配时即匹配则被包含。不匹配的排除在外。
default-autowire-candidates属性的值允许使用模式字符串,例如我们制定default-autowire-candidates=“*abc”,则所有以“abc”结尾的Bean都将被自动装配。它还支持多个字符,可以通过,空格 等分割。
1.1.3、default-init-method 和 default-destroy-method 属性:
default-init-method="init" default-destroy-method="destroy"
很多Bean都需要配置初始化方法和销毁方法,那么可以在beans标签中配置default-init-method和default-destroy-method来指定所有Bean的默认初始化方法和销毁方法 (init 与 destroy 是bean中的方法)
1.1.4、default-lazy-init 属性:
spring配置默认default-lazy-init为false,当属性default-lazy-init设置成true时,sping不会再去加载整个对象实例图,大大减少了初始化的时间,减少了spring的启动时间。
1.1.5、default-merge 属性:
从Spring 2.0M2开始,beans支持default-merge= "true" 的定义,子类不需要重新定义父类的List型属性中已定义过的内容
以上是关于对Spring IOC容器相关整理的主要内容,如果未能解决你的问题,请参考以下文章
Spring IOC :相关接口分析手写简易 Spring IOC
Spring IOC :相关接口分析手写简易 Spring IOC