Spring中接口注入的三种办法[Java编程]
本文“Spring中接口注入的三种办法[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
Type1 接口注入
我们常常借助接口来将调用者与实现者别离.如:
public class ClassA {
private InterfaceB clzB;
public init() {
Ojbect obj =
Class.forName(Config.BImplementation).newInstance();
clzB = (InterfaceB)obj;
}
……
}
上面的代码中,ClassA依靠于InterfaceB的实现,若何得到InterfaceB实现类的实例?传统的办法是在代码中成立InterfaceB实现类的实例,并将起赋予clzB.
而这样一来,ClassA在编译期即依靠于InterfaceB的实现.为了将调用者与实现者在编译期别离,于是有了上面的代码,我们按照预先在配置文件中设定的实现类的类名,动态加载实现类,并通过InterfaceB强迫转型后为ClassA所用.
这就是接口注入的一个最原始的雏形.
而关于一个Type1型IOC容器而言,加载接口实现并成立其实例的工作由容器完成,如J2EE开辟中常用的Context.lookup(ServletContext.getXXX),都是Type1型IOC的表现情势.
Apache Avalon是一个典型的Type1型IOC容器.
Type2构造子注入
构造子注入,即通过构造函数完成依靠关系的设定,如:
public class DIByConstructor {
private final DataSource dataSource;
private final String message;
public DIByConstructor(DataSource ds, String msg) {
this.dataSource = ds;
this.message = msg;
}
……
}
可以看到,在Type2范例的依靠注入机制中,依靠关系是通过类构造函数成立,容器通过调用类的构造办法,将其所需的依靠关系注入此中.
PicoContainer(另一种实现了依靠注入情势的轻量级容器)首先实现了Type2范例的依靠注入情势.
Type3设值注入
在各种范例的依靠注入情势中,设值注入情势在实际开辟中得到了最遍及的利用(此中很大一部份得力于Spring框架的影响).
在笔者看来,基于设置情势的依靠注入机制越发直观、也越发自然.Quick Start中的示例,就是典型的设置注入,即通过类的setter办法完成依靠关系的设置.
以上是“Spring中接口注入的三种办法[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |