IoC 容器的实现
主要实现
Java SE
Java Beans
Java Beans 还有一些GUI的功能.
Java ServiceLoader SPI
从Java 1.6 开始引入, 被 NetBeans 大量应用, NetBeans通过这种方式来加载一些组件
JNDI(Java Naming and Directory Interface)
Java命名和目录接口, 帮助我们去查找相应资源, IoC通常是靠名称, 而这里靠目录的话就会有一些嵌套.
Java EE
EJB(Enterprise Java Beans)
传统的IoC实现, 从 EJB 3.0 开始出现一个分水岭, 出现了依赖注入和依赖查找并存的情况. EJB1或者2的时候, 大部分都是依赖查找的.
Servlet
一个web技术怎么和IoC相关上了? 涉及到里面使用的设计模式, 一种就是Model2, 其特性是通过 Java EE, 或者是servlet, 去获取如数据库源, 线程池或消息服务等, 也是通过JNDI技术从server容器或者EJB容器中获取.
开源
Apache Avalon(http://avalon.apache.org/closed.html)
已经不更新了
PicoContainer(http://picocontainer.com/)
其实springFramework的依赖注入的一个技术灵感正式来源于这个框架.
Google Guice(https://github.com/google/guice)
国外目前也很流行的框架, 只是国内不太出名
Spring Framework(https://spring.io/projects/spring-framework)
绝对避不开的框架, 不多说
本文探讨了Java中实现IoC(Inversion of Control)容器的多种方式,包括JavaSE、JavaBeans、JavaServiceLoader SPI、JNDI以及在JavaEE中的应用。还介绍了开源框架如Spring、Guice和PicoContainer的历史和特点,特别指出Spring Framework在IoC领域的核心地位。此外,提到了Servlet如何与IoC相结合,并回顾了一些已不再维护的框架,如Apache Avalon。
802

被折叠的 条评论
为什么被折叠?



