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)通过实现接口的方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。