1,为什么会有依赖注入的设计模式?
public class PersistenceManager{
public void store(Object object){
DataSource dataSource=...;
Connection connection=dataSource.getConnection();
......//把对象存储到数据库
}
}
通常在javaee中,获得一个数据源常用方法是通过一次JNDI查询:
dataSource dataSource=null;
context=new InitialContext();
dataSource=(DataSource)context.lookup("java:/comp/env/jdbc/myDataSource");
首先,可以看出这个类依赖这个数据源类。
可以看出进行一次JNDI查询,需要一个JNDI名,但是不能保证用到PersistenceManager这个类的应用程序所提供的JNDI名是一样的,则此时重用性就不能得到保证。所以才会有依赖注入的设计模式。
2,依赖注入原理:把依赖关系注入到字辈组件中,就是把一个组件设计成能为被依赖的那个组件提供入口,就像插座给插头提供插孔。
3,依赖注入的主要方式:
(1)专门提供一个能够接受那个依赖关系的构造器
public class PersistenceManager{
private DataSource dataSource;
public PersistenceManager(DataSource dataSource){
this.dataSource=dataSource;
}
public void store(Object object){
Connection connection=dataSource.getConnection();
......//把对象存储到数据库
}
}
(2)通过setter方法
public class PersistenceManager{
private DataSource dataSource;
public void setDataSource(DataSource dataSource){
this.dataSource=dataSource;
}
public void store(Object object){
Connection connection=dataSource.getConnection();
......//把对象存储到数据库
}
}
(3)通过实现接口的方法
原文链接:https://www.f2er.com/javaschema/284624.html