配置动态切换数据源
推荐使用第二种,配置profiles的方式,直接点击操作,不需要改动
1、配置多个properties
1.1、创建三个properties文件
1.2、application.properties配置
spring.profiles.active=dev: 代表使用application-dev.properties的配置
spring.profiles.active=prod: 代表使用application-prod.properties的配置
2、配置profiles
2.1、properties中的配置
#数据库连接池,使用的连接池事阿里的druid
spring.datasource.url=@db.url@
spring.datasource.username=@db.username@
spring.datasource.password=@db.password@
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
2.2、pom.xml中profiles配置
<!--多环境配置-->
<profiles>
<profile>
<id>dev</id>
<properties>
<db.url>
jdbc:mysql://127.0.0.1:3306/xx?useSSL=false&characterEncoding=UTF-8&serverTimezone=Hongkong
</db.url>
<db.username>xxx</db.username>
<db.password>xx</db.password>
<logging.level>debug</logging.level>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<db.url>
jdbc:mysql://xxx:3306/xx?useSSL=false&characterEncoding=UTF-8&serverTimezone=Hongkong
</db.url>
<db.username>xxx</db.username>
<db.password>xxx</db.password>
<logging.level>debug</logging.level>
</properties>
</profile>
</profiles>
2.3、resources配置
<!--配置静态-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
<!--springboot使用的web资源要编译到META-INF/resources-->
<resource>
<directory>src/main/webapp</directory>
<targetPath>META-INF/resources</targetPath>
<includes>
<include>**/*.*</include>
</includes>
</resource>
<!--todo 必须要配置这个,配置的profiles中的参数才会生效-->
<resource>
<directory>src/main/resources/</directory>
<filtering>true</filtering><!-- 就是这个 -->
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>
2.4、整合一起为
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<java.version>1.8</java.version>
<commons-lang3.version>3.5</commons-lang3.version>
<commons-beanutils.version>1.9.2</commons-beanutils.version>
</properties>
<dependencies>
<!-- ***************spring*************** -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>fc</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<!--配置静态资源-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
<!--springboot使用的web资源要编译到META-INF/resources-->
<resource>
<directory>src/main/webapp</directory>
<targetPath>META-INF/resources</targetPath>
<includes>
<include>**/*.*</include>
</includes>
</resource>
<!--todo 必须要配置这个,配置的profiles中的参数才会生效-->
<resource>
<directory>src/main/resources/</directory>
<filtering>true</filtering><!-- 就是这个 -->
</resource>
</resources>
</build>
<!--多环境配置-->
<profiles>
<profile>
<id>dev</id>
<properties>
<profiles.active>dev</profiles.active>
<db.url>
jdbc:mysql://127.0.0.1:3306/xx?useSSL=false&characterEncoding=UTF-8&serverTimezone=Hongkong
</db.url>
<db.username>xx</db.username>
<db.password>xx</db.password>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<profiles.active>prod</profiles.active>
<db.url>
jdbc:mysql://xxx?useSSL=false&characterEncoding=UTF-8&serverTimezone=Hongkong
</db.url>
<db.username>xxx</db.username>
<db.password>xxx.</db.password>
</properties>
</profile>
</project>
2.5、mavenProject截图
2.6、打包命令
1. mvn clean install -Dmaven.test.skip=true -P test
2. mvn clean install -Dmaven.test.skip=true -P prod