IoC/DI,控制反转和依赖注入
发布时间:2020-12-13 22:16:21 所属栏目:百科 来源:网络整理
导读:控制反转(IoC:Inversion of Control): 应用本身不负责依赖对象的创建与维护,而是由外部容器负责(IOC容器)。就是说控制权由应用转移到外部容器。控制权的转移就是所谓的反转。 控制反转一般分为两种类型, 依赖注入(Dependency Injection,简称DI)
控制反转(IoC:Inversion of Control):
应用本身不负责依赖对象的创建与维护,而是由外部容器负责(IOC容器)。就是说控制权由应用转移到外部容器。控制权的转移就是所谓的反转。 控制反转一般分为两种类型,
依赖注入(Dependency Injection,简称DI)(流行)和依赖查找(Dependency Lookup)(不流行)。
依赖注入(DI:Dependency Injection):
在运行期,由外部容器动态地将对象注入到组件中。如下(注入personDao):
public class PersonServiceBean{ //PersonDao是一个接口,使用XML配置或注解可以注入一个实现类的实例 @Autowired public PersonDao personDao; } 如果不采用依赖注入,则必须这样: public PersonDao personDao = new PersonDaoBean();这样的话Service和Dao是紧密耦合的。使用Spring可以把他们解耦,而且可以注入任何实现PersonDao的类,而不仅限于PersonDaoBean,要更改注入的实现类可以方便的通过XML配置文件来实现。
依赖注入有三种方式:
Spring IoC/DI的过程:
依赖查找:
例子:
public class MyBusniessObject{ private DataSource ds; private MyCollaborator myCollaborator; public MyBusnissObject(){ Context ctx = null; try{ ctx = new InitialContext(); ds = (DataSource) ctx.lookup(“java:comp/env/dataSourceName”); myCollaborator = (MyCollaborator) ctx.lookup(“java:comp/env/myCollaboratorName”); }…… 参考文档:
http://www.52php.cn/article/p-whhjozgh-gg.html
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |