AutoConfig介绍
AutoConfig,主要用于 Maven 项目打包使用。在项目中,我们会将自己写的代码打成 jar 包或者 war 包发布到各种环境上。正常情况下,不用的环境所使用的数据库、缓存的配置是不同的。因此引入了autoConfig插件,在项目打包的时候的动态选择打包配置文件,同时由于相关配置文件非git/svn版本管理,避免了误操作修改了配置value导致错误的风险。
对autoConfig不了解的同学,可以先看一下这里
由于springboot默认是jar包运行,所以本文中autoConfig打包以jar报的目录结构进行配置
JAR包的源文件和目标文件目录结构
jar-project(源目录结构) -> jar-project.jar(目标目录结构)
│ pom.xml
│
└─src
└─main
├─java
└─resources -> /
│ file1.xml file1.xml
│ file2.xml file2.xml
│
└─META-INF -> /META-INF
└─autoconf -> /META-INF/autoconf auto-config.xml auto-config.xml
|
|
|
|
创建jar包的AutoConfig机制,关键在于创建jar目标文件中的/META-INF/autoconf/auto-config.xml
描述文件。该描述文件对应的maven项目源文件为:/src/main/resources/META-INF/autoconf/auto-config.xml
。
操作步骤:
1.pom.xml添加autoConfig相关插件
<build>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<!-- 打出的jar包中的 MANIFEST.MF 文件中增加 Main-Class 这一项配置,这样就能在命令行中通过 java -jar 来执行打出的jar包 -->
<manifestEntries>
<Main-Class>com.xxx.app.pss.WebApplication</Main-Class>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>com.alibaba.citrus.tool</groupId>
<artifactId>autoconfig-maven-plugin</artifactId>
<version>1.2</version>
<configuration>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>autoconfig</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
2.在resoures下建立META-INF文件夹(如果不存在)
3.在META-INF文件夹下建立autoconf文件夹,用于存放autoConfig相关配置xml以及配置vm模板
4.在上一步建立的autoConfig下建立auto-config.xml文件
文件夹目录如下所示:
5.auto-config.xml内容如下:
<?xml versi