Di : Dependency Injection 依赖注入 依赖:一个对象需要使用另一个对象 注入:通过setter方法进行另一个对象实例设置。
class BookServiceImpl{ //之前开发:接口 = 实现类 (service和dao耦合) //private BookDao bookDao = new BookDaoImpl(); //spring之后 (解耦:service实现类使用dao接口,不知道具体的实现类) private BookDao bookDao; setter方法 }模拟spring执行过程 创建service实例:BookService bookService = new BookServiceImpl() -->IoC 创建dao实例:BookDao bookDao = new BookDaoImple() -->IoC 将dao设置给service:bookService.setBookDao(bookDao); -->DI
创建UserService接口和实现类 创建UserDao接口和实现类
public interface BookDao { public void addBook(); } public class BookDaoImpl implements BookDao { @Override public void addBook() { System.out.println("di add book"); } } public class UserServiceImpl implements UserService { // 方式1:之前,接口=实现类 // private BookDao bookDao = new BookDaoImpl(); // 方式2:接口 + setter private UserDao userdao; public void setUserdao(UserDao userdao) { this.userdao = userdao; } @Test public void addUser() { this.userdao.addUser(); } }配置文件 测试
