为什么使用Autoconfig
在一个应用中,我们总是会遇到一些参数,例如:
- 数据库服务器IP地址、端口、用户名;
- 用来保存上传资料的目录。
- 一些参数,诸如是否打开cache、加密所用的密钥名称等等。
这些参数有一个共性,那就是:它们和应用的逻辑无关,只和当前环境、当前系统用户相关。以下场景很常见:
- 在开发、测试、发布阶段,使用不同的数据库服务器;
- 在开发阶段,使用Windows的A开发者将用户上传的文件存放在d:\my_upload目录中,而使用Linux的B开发者将同样的文件存放在/home/myname/my_upload目录中。
- 在开发阶段设置cache=off,在生产环境中设置cache=on。
- 很明显,这些参数不适合被“硬编码”在配置文件或代码中。因为每一个从源码库中取得它们的人,都有可能需要修改它们,使之与自己的环境相匹配, autoconfig就是很好的选择。
引入插件
在pom.xml中引入插件,下面为多环境配置
| 1 | <plugin.autoconfig.version>1.2</plugin.autoconfig.version> | 
配置
在src/main/resources下创建目录Meta-INF/autoconfig,在目录下创建文件auto-config.xml, 下面是我的配置(依个人而定):
| 1 | <?xml version="1.0" encoding="UTF-8"?> | 
使用
在上一步中可以看到antx将会替换五个文件,下面是其中一个文件的配置applicationContext-redis.xml:
| 1 | <?xml version="1.0" encoding="UTF-8"?> | 
在项目
mvn clean install的时候,antx会自动替换它所包含的文件,可以再target目录下查看指定的文件是否被替换成功
