1.多环境配置简介
项目开发过程中,不同角色会使用不同的环境,如开发人员会使用开发环境、测试人员会使用测试环境,此外项目开发完成后也会被部署到线上环境。不同环境往往需要不同的配置,如MySQL、Redis、MQ消息中间件等,环境之间相互独立与隔离才不会相互影响,才便于部署和提高效率。

2.项目准备
复制一份“集成MyBatis”的项目代码,修改项目名称为profiles。然后在线上数据库新建一个名为mydb的数据库,在mydb中新建一个名为user的数据表,然后往数据表里插入1条数据,具体SQL语句如下。

create database if not exists mydb character set = utf8;
create table user (
id int(11) not null auto_increment,
name varchar(30) default null,
email varchar(50) default null,
primary key (id)
);
insert into user values (1, 'steven', '490***112@qq.com');

3.添加多环境配置
新建一个SpringBoot工程,在项目目录“resources”下新建application-dev.properties和application-prd.properties文件,并依次在application.properties、application-dev.properties和application-prd.properties三个文件内添加如下配置信息。

############################################################
#
# 多环境配置
#
############################################################
spring.profiles.active = dev

############################################################
#
# mybatis配置
#
############################################################
mybatis.type-aliases-package = com.leichuangkj.profiles.dao.po
mybatis.mapper-locations = classpath:mybatis/mapper/*.xml
############################################################
#
# 多环境配置
#
############################################################
server.port = 8080

############################################################
#
# MySQL配置
#
############################################################
### 连接信息
spring.datasource.url = jdbc:mysql://localhost:3306/mydb
### 用户名
spring.datasource.username = root
### 密码
spring.datasource.password = admin123
### 驱动
spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver
############################################################
#
# 多环境配置
#
############################################################
server.port = 80

############################################################
#
# MySQL配置
#
############################################################
### 连接信息
spring.datasource.url = jdbc:mysql://47.***.**.35:3306/mydb
### 用户名
spring.datasource.username = root
### 密码
spring.datasource.password = admin123
### 驱动
spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver

4.启动类开发
在启动类ProfilesApplication上添加注解“@MapperScan(basePackages = “com.leichuangkj.profiles.dao.mapper”)”。

@MapperScan(basePackages = "com.leichuangkj.profiles.dao.mapper")
@SpringBootApplication
public class ProfilesApplication{
public static void main(String[] args) {
SpringApplication.run(ProfilesApplication.class, args);
}
}

5.测试

启动项目,然后在postman中请求“http://localhost:8080/user/findByName”,可以查询到相应的信息,测试结果如下图所示。

24.多环境配置_环境配置


将application.properties文件中的spring.profiles.active属性修改为prd,重新启动项目,然后在postman中请求“http://localhost:80/user/findByName”,可以查询到相应的信息,测试结果如下图所示。可以清楚地看到,查询结果已经发生变化。

24.多环境配置_环境配置_02

6.工程目录结构

24.多环境配置_环境配置_03