日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

Spring boot 打包jar 将配置文件分离

發(fā)布時(shí)間:2024/9/30 javascript 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring boot 打包jar 将配置文件分离 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

感謝@payyouyont博主對(duì)本篇文章的支持,參考地址

https://blog.csdn.net/pei19890521/article/details/80984707

二.打jar包并分離配置文件
一般的需求是想動(dòng)態(tài)修改數(shù)據(jù)庫(kù)配置文件,所以我這里做的是將jdbc.properties配置文件分離出來(lái),項(xiàng)目結(jié)構(gòu)如下

向pom文件中添加assembly插件配置

<!--========================打jar分離配置文件begin=========================================--><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><configuration><archive><manifest><addClasspath>true</addClasspath><classpathPrefix></classpathPrefix><mainClass>com.zzzy.zc.Application</mainClass><!--配置自己的啟動(dòng)類--></manifest></archive></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><!-- The configuration of the plugin --><configuration><descriptors><descriptor>src/main/resources/config/package.xml</descriptor><!--配置package.xml路徑--></descriptors></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin><!--===========================打jar分離配置文件end==========================-->

在config文件夾下新建package.xml文件

```xml <?xml version="1.0" encoding="UTF-8"?> <assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd"><id>package</id><formats><format>zip</format></formats><includeBaseDirectory>true</includeBaseDirectory><fileSets><!--把項(xiàng)目自己編譯出來(lái)的jar文件,打包進(jìn)zip文件的根目錄--><fileSet><directory>target</directory><outputDirectory>/</outputDirectory><includes><include>*.jar</include></includes></fileSet><fileSet><directory>src/main/resources</directory> <!-- 指定歸檔文件(要打的jar包)要包含的目錄(下的文件及文件夾) --><outputDirectory>/</outputDirectory> <!-- 指定要將當(dāng)前目錄(<directory>標(biāo)簽中的目錄放在歸檔文件(要打的jar包)bin目錄下) --><includes><include>config/jdbc.properties</include> <!-- 精確控制要包含的文件,<exclude>用于精確控制要排除的文件 --><include>application.properties</include> <!-- 精確控制要包含的文件,<exclude>用于精確控制要排除的文件 --></includes></fileSet></fileSets> </assembly> 此時(shí)已經(jīng)可以將配置文件分離出來(lái)進(jìn)行打包了,此時(shí)如果用maven的mvn clean package命令打出來(lái)的包雖然有xxx.zip包,但是是不能用的.必須先用mvn clean package將可執(zhí)行jar打出來(lái),然后用mvn assembly:single命令打zip包zip結(jié)構(gòu)如下現(xiàn)在將打的zip包解壓出來(lái),已經(jīng)能運(yùn)行了,cd到j(luò)ar所在的文件夾,執(zhí)行Java -jar xxxx.jar但是此時(shí)不會(huì)讀取分離出來(lái)的配置文件 依然是讀取jar包中存在的配置文件此時(shí)執(zhí)行java -jar -Dspring.config.location=%cd%\application.properties -Dlogging.path=%cd%\log %cd%\xxx.jar即可讀取外部配置文件此時(shí)讀取的application.properties是外置的配置 但是jdbc.properties仍然是jar包中內(nèi)置的 所以還需要做一些工作在application.properties中添加一個(gè)字段 config.path=D:\\config\\jdbc.properties (zip解壓到的路徑)然后創(chuàng)建DataSource時(shí)讀取它```java @SpringBootConfiguration @PropertySource(value = { "classpath:config/jdbc.properties","file:${config.path}" }, ignoreResourceNotFound = true,encoding = "utf-8") public class DatasourceConfig {@Bean(name = "dataSource")@Qualifier(value = "dataSource")@Primary@ConfigurationProperties(prefix = "c3p0")public DataSource dataSource() {return DataSourceBuilder.create().type(com.mchange.v2.c3p0.ComboPooledDataSource.class).build();} }

jdbc.properties配置如下

c3p0.jdbcUrl=jdbc:mysql://localhost:3306/test
c3p0.user=root
c3p0.password=123456
c3p0.driverClass=com.mysql.jdbc.Driver

大功告成,現(xiàn)在先將項(xiàng)目clean一下(因?yàn)樾薷牧祟愇募?如果不clean,每次打的zip包里用的還是舊的jar包)

然后執(zhí)行package(現(xiàn)在打了最新的jar)

再運(yùn)行mvn assembly:single將jar以及配置文件打到zip中

最后cd到j(luò)ar所在文件夾 執(zhí)行java -jar -Dspring.config.location=%cd%\application.properties -Dlogging.path=%cd%\log %cd%\xxx.jar

總結(jié)

以上是生活随笔為你收集整理的Spring boot 打包jar 将配置文件分离的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。