在Spring中,用ref的属性指定的依赖。有3种模式:local,Bean,parent.下面分别对这3种模式进行比较:
1.用local属性指定
如果一个Bean与被参考引用的Bean在同一个xml文件中而且被参考引用的Bean用id来命名 .那么就可以使用ref的local属性.这样会让xml解析器更早地在XML文档解析时,验证Bean的Id。local属性的值必须与被参考引用的Bean的id属性一致。如果在同一个文件中没有匹配的元素,XML解析器将会产生一个错误。
用XML来配置文档的一个明显缺点是,开发人员不能及时地发现XML中的错误.为了能够尽可能地发现XMl的错误配置信息,如果一个Bean与被参考引用的Bean在同一个XML文件中,那么使用local形式是最好的选择.
用ref的local属性来指定的依赖的示例代码如下:
2.用Bean属性指定
用ref元素的Bean属性指定被参考引用的Bean是Spring中最常见的形式,它允许指向的Bean可以在同一个XML中,也可以不在同一个文件中.Bean属性的值可以与被参考引用的Bean的id属性相同,也可以与被参考引用的 Bean的name属性相同.用ref的Bean属性来指定依赖的示例代码如下:
3.用parent属性指定
用parent属性指定被参考引用的Bean时,允许引用当前BeanFactory或ApplicationContext的父BeanFactory或ApplicationContext中的Bean.parent属性的值可以与被参考引用的id属性相同,也可以与被参考引用Bean的name相同.用ref的parent属性来指定依赖的示例代码如下:
4.用local属性与Bean属性指定依赖的比较:
在这3种模式中,用local属性指定依赖和用Bean属性指定依赖最为常用.下面对这两种模式进行比较:
相同之处:两种模式都可以用Bean的id来进行参考引用.都可以对同一XML中的Bean进行参考引用.
不同之处:用Bean属性指定依赖可以用Bean的name来进行参考引用,还可以对不同XML中的Bean进行参考引用.