Spring学习笔记 关于spring 2.x中dependency-check标签与Spring3中的实现方式
2017-01-10 13:04
232 查看
在Bean被创建时Bean的属性(property)如果在配置文件Bean的定义中没有进行初始化赋值,默认情况下spring对于没有进行初始化的属性(property)是不做检查的。但是很多情况下会要求Bean特定的属性必须进行初始化赋值,在Spring2.x中通过在bean标签中使用dependency-check属性设定由Spring进行强制检查的方式。denpendency-check属性有四个值
[html]
view plain
copy
<bean id="ernie" class="com.***." dependency-check="none">
//如果不进行设置设就是Spring中dependency-check的默认值,不进行任何检查。
[html]
view plain
copy
<bean id="ernie" class="com.***." dependency-check="simple">
//只检查简单类型属性以及集合类型属性
[html]
view plain
copy
<bean id="ernie" class="com.***." dependency-check="object">
//检查除简单类型属性以及集合类型属性外的引用类型属性
[html]
view plain
copy
<bean id="ernie" class="com.***." dependency-check="all">
//检查所有类型属性
当检查没有通过时会抛出org.springframework.beans.factory.UnsatisfiedDependencyException异常。
看了以上的教程那会儿我就跑到自己的工程上写代码测试下。结果抛出了以下异常
![](http://my.csdn.net/uploads/201207/19/1342687777_2306.jpg)
我的spring-config.xml代码如下:
[html]
view plain
copy
<?xml version="1.0" encoding="UTF-8"?>
<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">
<bean id="toBeCheckedBean" class="dependencycheck.ToBeCheckedBean" dependency-check="simple" />
</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
[html]
view plain
copy
<bean id="ernie" class="com.***." dependency-check="none">
//如果不进行设置设就是Spring中dependency-check的默认值,不进行任何检查。
[html]
view plain
copy
<bean id="ernie" class="com.***." dependency-check="simple">
//只检查简单类型属性以及集合类型属性
[html]
view plain
copy
<bean id="ernie" class="com.***." dependency-check="object">
//检查除简单类型属性以及集合类型属性外的引用类型属性
[html]
view plain
copy
<bean id="ernie" class="com.***." dependency-check="all">
//检查所有类型属性
当检查没有通过时会抛出org.springframework.beans.factory.UnsatisfiedDependencyException异常。
看了以上的教程那会儿我就跑到自己的工程上写代码测试下。结果抛出了以下异常
![](http://my.csdn.net/uploads/201207/19/1342687777_2306.jpg)
我的spring-config.xml代码如下:
[html]
view plain
copy
<?xml version="1.0" encoding="UTF-8"?>
<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">
<bean id="toBeCheckedBean" class="dependencycheck.ToBeCheckedBean" dependency-check="simple" />
</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
相关文章推荐
- Spring学习笔记 关于spring 2.x中dependency-check标签与Spring3中的实现方式
- Spring学习笔记(四)Spring配置文件方式实现AOP
- Spring学习笔记(15)----使用Spring的注解方式实现AOP
- Spring整理12 -- 面对切面(AOP)2 -- 配置文件的方式实现AOP
- Spring AOP之Annotation实现方式
- 关于缩略图的实现方式
- 实现Spring AOP 应用的几种方式
- 使用Spring 2.0新特性实现前置通知--基于Annotation方式
- 关于Spring声明性事务的几种定义方式
- 谈谈云计算的部署方式——关于虚拟化实现
- 用Spring配置文件或者注解方式实现AOP
- spring2.x使用aop实现声明式日志记录
- 关于Tab选项卡的实现方式的探讨
- Spring中的IOC(一):什么是IOC及Spring中实现IOC的方式(依赖注入)
- Spring的AOP(四):自动代理及Aspect J的方式实现Aop编程
- Spring AOP之配置文件实现方式
- 使用Spring 2.0新特性实现前置通知--基于Schema方式
- 关于spring 2.0自定义xml 标记 (二 如何实现)
- 关于含有HTML标签格式的文章截取功能实现
- struts1.x、hibernate和spring2.x集成方式