10、Eternal框架-依赖注入

我在茫茫人海寻着你,沿着你给的痕迹,我想我们会相遇,在浪漫的雨季,或是冰天雪地。

依赖注入或控制反转这个概念大家太熟悉啦,在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());
	 }
}

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...