IoCIoC)、依赖注入(DI)之二”的例子继续往下。
回顾:
问题描述:
如“回顾”所指,如何能够使具体组件依赖的配置脱离源代码存在?需要将这种硬编码的僵化设计改进为可灵活热插拔的方式。
解决方案:
。
。注意有个点 . 哦!
于是,可以得出如下配置文件格式,网站空间,这也是下面例子中要用到的配置文件:
# define a new concrete bean’reportGenerator’
reportGenerator=IoC_DI.use_reflect.PDFGenerator
# define a new concrete report service’reportService’
reportService=IoC_DI.use_reflect.ReportService
# inject the bean ‘reportGenerator’ into the ‘reportService’
reportService.reportGenerator=reportGenerator
实现方法:
BeanUtil.java反射、注入工具类代码如下,请详看注释:
根据以上具体配置文件,运行得到结果如下:
…
最后获取服务组件…getBean() –> reportService …
generate an PDF report …
想要使用其他逐渐,只要修改配置文件中第一个组件定义为:
# define a new concrete bean ‘reportGenerator’
reportGenerator=IoC_DI.use_reflect.ExcelGenerator
运行结果如下:
…
最后获取服务组件…getBean() –> reportService …
generate an Excel report …
注意:
Object bean = Class.forName(value).newInstance();
beans.put(keyParts[0], bean);
}
else {
bean的主体,香港虚拟主机,香港服务器,以及被注入的实例
Object bean = beans.get(keyParts[0]);
Object filedRef = beans.get(value);
BeanUtil.setProperty(bean, keyParts[1], filedRef);
}
后记:
包对应类好像使用了麻烦的描述符来查找 setter 方法。最后还是自己实现一下更加轻快:-D
回头看看上一篇文章,应该更能帮助理清例子的演进历程:-D
之一
演进式例解控制反转(IoC)、依赖注入(DI)之二
以下文章你可能也会感兴趣:
Java RMI 框架的工厂方法模式实现
本文出自 “蚂蚁” 博客,请务必保留此出处
带上心灵去旅行,以平和的心态看待一切,