我在茫茫人海寻着你,沿着你给的痕迹,我想我们会相遇,在浪漫的雨季,或是冰天雪地。
依赖注入或控制反转这个概念大家太熟悉啦,在eternal框架里的实现,只能基于属性的,对类的注入。这个注入的工作由持有者来完成,也就是说持有者管理着类之间的关系。实现就比较简单啦,通过注解标识出需要注入的属性,属性值为需要注入的类,持有者把要注入的类,实例化后,通过反射付给属性。
@Inject(DemoService.class) public Service ser;如上面的代码,Service可能是接口、抽象类、类,要注入的类为DemoService,Inject注解为标识属性需要注入。
以下为注入的关键代码,感兴趣的话,可以看下http://code.google.com/p/eternal-mvc/downloads/list 里的源代码1.1
for (Field field:filedArr) { if (isControllerBean(field)) { Inject inject = field.getAnnotation(Inject.class); Class iCls = inject.value(); Object injObj = iCls.newInstance(); field.set(claObj,injObj); log.info("Init Bean "+claObj.toString()+"的属性"+field.getName()+",注入值"+injObj.toString()); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。