spring中Bean的依赖检查

Spring提供了一种依赖检查的功能,可以防止出现配置手误,或者其他出错的可能,使用以来检查可以让系统判断配置文件的依赖注入是否完全有效。
有效的依赖是:如果属性需要普通类型的值,则在Bean的定义中已经设置了合适的值;如果属性需要java对象类型的值,则要么通过自动装配提供有效依赖,要么通过ref注入合作者Bean,要么通过<bean.../>元素指定嵌套Bean。
使用以来检查可以保证Bean的属性得到了正确设置。也许有时候某个Bean的特定属性并不需要设置值,或者某些属性已有默认值,此时采用依赖检查就会出现错误,该Bean就不应该采用依赖检查。
Spring可以为每个Bean单独指定依赖检查,Spring默认不进行依赖检查,可以通过dependency-check指定不同依赖检查策略:
1、none:不进行依赖检查,默认。
2、Simple:对基本类型和集合(除了合作者Bean)进行依赖检查。
3、Objects:仅对合作者Bean进行依赖检查。
4、All:对合作者Bean、基本类型和集合全部进行依赖检查。
(1)、simple

<bean id="person" class="net.battier.pojo.Person"
dependency-check="simple">
此处没有设置Bean的一个属性,使用了simple策略的依赖检查将报错
<property name="personName" value="张三"></property>
<property name="personAge" value="18"></property>
<property name="personSex" value="false"></property>
<property name="personDesc" value="他是个男的"></property>
<!-- 引用org -->
<property name="org" ref="organization"></property>
</bean>


(2)Objects

<!-- 雇员Bean
dependency-check="simple":对Bean属性的基本数据类型以来检查
dependency-check="objects":对合作者Bean进行依赖检查
-->
<bean id="person" class="net.battier.pojo.Person"
dependency-check="objects">
<property name="id" value="1"></property>
<property name="personName" value="张三"></property>
<property name="personAge" value="18"></property>
<property name="personSex" value="false"></property>
<property name="personDesc" value="他是个男的"></property>
<!-- 引用org(如果没有配置,则依赖检查机制会警报) -->
<property name="org" ref="organization"></property>
</bean>


(3)All


<!-- 雇员Bean
dependency-check="simple":对Bean属性的基本数据类型以来检查
dependency-check="objects":对合作者Bean进行依赖检查
dependency-check="all":对合作者Bean、基本类型和集合全部进行检查
-->
<bean id="person" class="net.battier.pojo.Person"
dependency-check="all">
<property name="id" value="1"></property>
<property name="personName" value="张三"></property>
<property name="personAge" value="18"></property>
<property name="personSex" value="false"></property>
<property name="personDesc" value="他是个男的"></property>
<!-- 引用org(如果没有配置,则依赖检查机制会警报) -->
<property name="org" ref="organization"></property>
</bean>


(4)None

<!-- 雇员Bean
dependency-check="simple":对Bean属性的基本数据类型以来检查
dependency-check="objects":对合作者Bean进行依赖检查
dependency-check="all":对合作者Bean、基本类型和集合全部进行检查
dependency-check="none":不进行依赖检查(默认)。
-->
<bean id="person" class="net.battier.pojo.Person"
dependency-check="none">
<property name="id" value="1"></property>
<property name="personName" value="张三"></property>
<property name="personAge" value="18"></property>
<property name="personSex" value="false"></property>
<property name="personDesc" value="他是个男的"></property>
<!-- 引用org(如果没有配置,则会空指针异常) -->
<property name="org" ref="organization"></property>
</bean>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值