Spring学习笔记 关于spring 2.x中dependency-check标签与Spring3中的实现方式

在Bean被创建时Bean的属性(property)如果在配置文件Bean的定义中没有进行初始化赋值,默认情况下 spring对于没有进行初始化的属性(property)是不做检查的。但是很多情况下会要求Bean特定的属性必须进行初始化赋值,在Spring2.x中通过在bean标签中使用dependency-check属性设定由Spring进行强制检查的方式。denpendency-check属性有四个值

 

  1. <bean id="ernie" class="com.***." dependency-check="none">  
  2. //如果不进行设置设就是Spring中dependency-check的默认值,不进行任何检查。  


  1. <bean id="ernie" class="com.***." dependency-check="simple">  
  2. //只检查简单类型属性以及集合类型属性  
  1. <bean id="ernie" class="com.***." dependency-check="object">  
  2. //检查除简单类型属性以及集合类型属性外的引用类型属性  
  1. <bean id="ernie" class="com.***." dependency-check="all">  
  2.   
  3. //检查所有类型属性  


当检查没有通过时会抛出org.springframework.beans.factory.UnsatisfiedDependencyException异常。

看了以上的教程那会儿我就跑到自己的工程上写代码测试下。结果抛出了以下异常

Attribute 'dependency-check' is not allowed to appear in element 'bean'

我的spring-config.xml代码如下:

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xsi:schemaLocation="http://www.springframework.org/schema/beans   
  5.         http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">  
  6.   
  7.     <bean id="toBeCheckedBean" class="dependencycheck.ToBeCheckedBean" dependency-check="simple" />  
  8.       
  9. </beans>  

 

上网查了下资料发现,在我上边代码中使用了spring3.0的xsd(http://www.springframework.org/schema/beans/spring-beans-3.0.xsd)(用来验证xml文档有效性,同DTD文件作用相同),而在spring3.0的xsd文件中根本没有dependency-check属性的定义,原因是在spring3+中已经放弃使用这个属性了,如果需要使用这个属性则需要使用spring2.5的xsd文件。

而既然Spring3中放弃使用了dependency-check属性一定就会有替代它的功能出现。

查了下资料,果然,在spring3中替代dependency-check有4条建议:

  • 在需要强制进行初始化的setters上标注@Required
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值