首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Spring内核研究-治理bean之间的关系二(自动依赖检查)

2012-08-29 
Spring内核研究-管理bean之间的关系二(自动依赖检查)?自动依赖检查可以保证所有java bean中的属性(set方法

Spring内核研究-管理bean之间的关系二(自动依赖检查)

?自动依赖检查可以保证所有java bean中的属性(set方法)都在Spring中正确的配置。如果在一个java bean中定义了一个name属性,并且也setName方法。那么在开启自动依赖检查功能后,就必须在Spring中定义这个属性,否则Spring将抛出异常。

请看下面的例子:Dao.java包含一个setName方法。
package research.spring.beanfactory.ch3;public class Dao {private String name;public void setName(String name) {this.name = name;}}
??context.xml:?
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN""http://www.springframework.org/dtd/spring-beans.dtd"><beans><bean name="dao" name="code"><?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN""http://www.springframework.org/dtd/spring-beans.dtd"><beans><bean name="dao" dependency-check="all" >    </bean><bean id="database" width="550" src="/img/2012/07/17/1609466348.jpg" alt="Spring内核研究-治理bean之间的关系二(自动依赖检查)">Spring定义了4种依赖检查的策略:?none(默认)??? 不进行依赖检查。simple??? 只对简单属性和集合中的简单属性进行检查。不对依赖的对象检查。objects??? 只对为对象类型的属性进行检查。all??? 对所有类型进行检查。???? 如果把上面例子里的context.xml改成这样:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN""http://www.springframework.org/dtd/spring-beans.dtd"><beans><bean name="dao" dependency-check="objects" >    </bean><bean id="database" name="code">package research.spring.beanfactory.ch3;public class Dao {private Database database;private String name="chenjie";//dependency-check仍然会检查这个属性是否配置注入public void setName(String name) {this.name = name;}public void setDatabase(Database database) {this.database = database;}}

?

即使Dao设置里name得默认值,但是只要有setName方法,dependency-check仍然会判断是否在配置文件中设置了setName对应的注入。

热点排行