【文件属性】:
文件名称:负责业务逻辑的类都必须实现这个接口
文件大小:2KB
文件格式:TXT
更新时间:2018-11-04 06:16:25
如果具体的
负责业务逻辑的类都必须实现这个接口,业务逻辑类BusinessImpl实现接口Business,BusinessImpl.java的示例代码如下:
//******* Business.java**************
public class BusinessImpl implement Business {
private SaveData db;
public void DiSaveDate (SaveData db) {
this.db = db;
}
…
//根据注入的存储类,存储数据
public void saveData() {
…
db.saveData();
…
}
}
编写测试类TestBusiness,TestBusiness.java的示例代码如下:
//******* TestBusiness.java**************
public class TestBusiness {
private Business business = new BusinessImpl();
…
//根据注入的存储类,存储数据
public void opraData() {
…
business. DiSaveDate (new XMLData());
business. saveData ();
…
}
}
如果要完成依赖关系注入的对象,必须实现Business接口。
构造注入
构造注入是指在接受注入的类中定义一个构造方法,并在参数中定义需要注入的类。
(1)为了让类Business接受XMLData的注入,需要为它定义一个构造方法,来接受XMLData的注入。Business.java的示例代码如下:
//******* Business.java**************
public class Business {
private SaveData db;
public Business (SaveData db) {
this.db = db;
}
…
//根据注入的存储类,存储数据
public void saveData() {
…
db.saveData();
…
}
}
(2)编写测试类TestBusiness,TestBusiness.java的示例代码如下:
//******* TestBusiness.java**************
public class TestBusiness {
private Business business = new Business(new XMLData());
…
//根据注入的存储类,存储数据
public void opraData() {
…
business. saveData ();
…
}
}
即通过构造函数来完成依赖注入。
从前面对这三种依赖注入的方式中可以看出:其实所有的依赖注入都离不开抽象的支持,也就是说只有"面向接口编程",才能够实现依赖注入。
读者可能还会有疑惑:虽然具体的存储方式和业务逻辑无关了,可不是还要在调用业务逻辑的类里来改变具体的存储方式吗?这样一来,不是还要改代码吗?看起来面向接口编程也挺简单的,那Spring又为开发人员提供了哪些帮助呢?其实,Spring为开发人员提供了调用业务逻辑类的具体方式,也就是说,Spring不再需要开发人员编写调用具体调用业务逻辑的类,而是通过配置文档来实现对业务逻辑的调用,如果具体的存储方式发生了变化,开发人员只需要改变相应的配置文档即可。