一个可以从属性文件、XML和JSON中读取并根据注解自动注入配置的工具。
为什么存在?
-
Spring只支持属性文件
-
Apache commons configuration不支持注解
这个小工具柔和了两者的优点。🤪
从指定的配置文件中读取并将配置注入到类的字段及setter方法上,支持XML,属性文件,json格式,支持将多个配置文件组合为一个虚拟配置。
假如有以下XML:
<?xml version="1.0" encoding="UTF-8" ?> <china> <area ranking="3">960</area> <phone>86</phone> </china>以及如下的Java类定义:
@Component public class Reporter { @Value(key = "china.phone") private int phone; @Value(key = "china.area#ranking") public void setRanking(int ranking) { this.ranking = ranking; } }便可以以如下的方式进行注入:
@Test public void xml() { Source source = new XMLSource("etc/configurator.xml"); Injecter injector = new Injecter(); BeanContainer beanContainer = injector.basePackage("configurator.xml").source(source).inject(); Reporter reporter = beanContainer.get(Reporter.class); System.out.println(reporter); }IOC利用javax.annotation.Resource实现,支持的特性如下:
- @Component组件注册
- 类型转换器TypeConverter自定义
- 按照名称、类型注入
- 初始化方法(@Init)定义及优先级
- 构造器、初始化方法参数解析、注入