标签:
无论你多么伟大你都不可能独立完成一项伟大的任务,JavaEE组件也是一样的,没有那个组件可以独立完成所有的任务。一个组件在工作的时候往往需要其他资源的帮助,那么在寻求帮助的过程中就涉及到这次我们要说的“依赖性管理”的问题。比如一个简单的会话bean它需要借用JDBC的数据源持久化数据,再比如一个消息驱动Bean需要往JMS消息队列中传递消息。这里都涉及到如何在组件中获取服务器中的资源的问题。
和现实生活中一样你需要火警、匪警疑惑120帮忙那么只需要拨打电话号码就可以了,但是前提是你首先要知道这些电话号码。映射到JavaEE当中就是服务器中有很多资源,开发者需要在程序中定义引用的资源,然后再去使用。在组件中对资源的引用可以动态的从程序代码中解析,也可以在该组件实例化的时候由容器自动解析(依赖注入?)。
资源的引用由两部分构成:名称(name)和目标(target)类似于json中的key和value的关系,前面的名字主要是给人看的,后面的target才是真正需要去服务器中找寻的资源。有了名字和目标就相当于知道了匪警或者是火警的电话剩下的就需要把你的信息告诉对方,钥匙落家了火警就知道要拿液压钳,遇到歹徒了匪警就知道带枪。换成官方的语言就是每个资源引用需要一组特定于它所执行资源类型的不同信息。通常一个引用由以下注解声明:@Resource、@EJB、@PersistenceContext或者@PersistenceUnit。和Spring的注解类似可以放在你想要放到的位置(类、字段或者setter方法)不同的位置据定了服务器是否会自动解析(加载)。
后面将逐个介绍不同类型的依赖类型:依赖性查找、依赖性注入、声明性依赖,其实本质上他们都是类似的都是通过特定的信息找到程序所需要的外部资源。
标签:
原文地址:http://blog.csdn.net/beijiguangyong/article/details/43339667