一、项目进行多环境配置的必要性
- 在实际开发中,应用程序通常需要部署到不同的运行环境中,例如开发环境、测试环境、生产环境等。不同的环境可能需要不同的环境配置,针对这种情况,不可能手动变更配置文件来适应不同的开发环境,通常需要对项目进行多环境配置,Spring Boot框架提供了两种多环境配置的方式,分别是Profile文件多环境配置和@Profile注解多环境配置。同时,会额外讲解在Spring Boot配置文件中设置属性时,除了可以像前面示例中显示的配置属性值外,还可以使用随机值和参数间引用对属性值进行设置。
(一)创建Spring Boot Web项目ProfileDemo01
(二)创建多环境配置文件
- 配置文件命名格式:application.yaml
- 此例仅演示端口号的配置,实际应用中可以配置许多内容
1、模拟开发环境,创建配置文件application.yaml
spring:
profiles:
active: dev#开发环境
2、模拟测试环境,创建配置文件application-dev.yaml
server:
port: 8081
servlet:
context-path: /lzy
3、模拟测试环境,创建配置文件application-test.properties
server:
port: 8082
servlet:
context-path: /szechwan
4、模拟生产环境,创建配置文件application-pro.properties
server:
port: 8083
servlet:
context-path: /china
(三)指定使用环境
方式1、使用配置文件全局指定使用环境
@RestController
public class ProfileController {
@GetMapping("/hello")
public String hello(){
return "Welcome to Spring Boot World~";
}
}
方式2、通过命令行方式指定使用环境
(1)使用IDEA将Maven项目打成jar包
- Maven - ProfileDemo01 - LifeCycle - package
- 在target目录里查看生成的项目jar包profiledemo01-0.0.1-SNAPSHOT.jar
(2)在终端执行jar包,选择使用环境 - 开发环境
D:\IdeaProjects\ProfileDemo01>cd target
D:\IdeaProjects\ProfileDemo01\target>java -jar profiledemo01-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev
- 按Ctrl + C组合键,停止项目的运行
三、使用@Profile注解进行多环境配置
(一)创建Spring Boot Web项目ProfileDemo02
(二)创建数据库配置接口DatabaseConfig
public interface DatabaseConfig {
void connector();
}
(三)创建三个数据库配置实现类
1、创建数据库配置实现类MySQLConfig
@Configuration // 指定为配置类
@Profile("mysql") // 配置环境名称
public class MySQLConfig implements DatabaseConfig {
@Override
public void connector() {
System.out.println("项目使用MySQL数据库环境~");
}
}
2、创建数据库配置实现类OracleConfig
@Configuration // 指定为配置类
@Profile("oracle") // 配置环境名称
public class OracleConfig implements DatabaseConfig {
@Override
public void connector() {
System.out.println("项目使用Oracle数据库环境~");
}
}
3、创建数据库配置实现类SybaseConfig
@Configuration // 指定为配置类
@Profile("sybase") // 配置环境名称
public class SybaseConfig implements DatabaseConfig {
@Override
public void connector() {
System.out.println("项目使用Sybase数据库环境~");
}
}