传统的资源注入采用JNDI注入方式:
InitialContext initCtx = new InitialContext();
// Perform JNDI lookup to obtain the resource.
catalogDS = (DataSource)
initCtx.lookup("java:comp/env/jdbc/catalogDS");
在JavaEE5时代通过注解的方式注入资源:
private @Resource DataSource catalogDS;
但JavaEE5的资源注入是受限的,只有容器受管组件,比如EJB,Servlet,JSP tag hangler等。一个方面考虑的扫描的性能,另一个
对组件的创建有更好的控制。
在JavaEE6时代又出现了DI和CDI,让资源注入搞得无处不在。也大大增了开发难度。DI相关Annotation。
@Inject,@Named,@Qualifier,@Scope,@Singletonhttp://www.oracle.com/technetwork/articles/javaee/injection-141192.html
本文出自 “天下无贼” 博客,请务必保留此出处http://guojuanjun.blog.51cto.com/277646/1949101
原文:http://guojuanjun.blog.51cto.com/277646/1949101