选择配置环境profiles(正式、测试之间调换)
关联注解:@Profile-指定组件在哪种情况下注册到容器中
配置类中手动修改
简单配置
1.配置类
application.properties -- 主配置类
spring.profiles.active=test
application-prod.yaml -- 正式环境配置类
user:
name: 正式环境
age: 20
server:
port: 5050
application-test.yaml -- 测试环境配置类
user:
name: 测试环境
age: 21
server:
port: 6060
2.Controller
@Controller public class MyController { @Autowired private User user; @ResponseBody @GetMapping("/getUser") public User getUser(){ return user; } }
3.实体类
@Data @ToString @ConfigurationProperties("user") @Component public class User { private String name; private int age; }
4.请求
复杂配置
1.配置类
application-prod.yaml -- 主配置类
spring.profiles.active=myprod spring.profiles.group.myprod[0]=prod spring.profiles.group.myprod[1]=prod-age
spring.profiles.group.mytest[0]=test
application-prod1.yaml -- 生产环境配置类
user:
userName: 正式环境
server:
port: 5050
application-prod-age.yaml -- 生产环境配置类2
user:
age: 20
application-test.yaml -- 测试环境配置类
user: userName: 测试环境 age: 21 server: port: 6060
2.Controller
@Controller
public class MyController {
@Autowired
private User user;
@ResponseBody
@GetMapping("/getUser")
public User getUser(){
return user;
}
}
3.实体类
@Data
@ToString
@ConfigurationProperties("user")
@Component
public class User {
private String name;
private int age;
}
4.请求
开发软件中选择修改
1.配置类
application.properties -- 主配置类
spring.profiles.active=@profiles.active@
application-prod.yaml -- 生产环境配置类1
user: userName: 正式环境 age: 50 server: port: 5050
application-prod-redis.yaml -- 生产环境配置类2
spring:
redis:
client-name: prod
application-test.yaml -- 测试环境配置类1
user: userName: 测试环境 age: 60 server: port: 6060
application-test-redis.yaml -- 测试环境配置类2
spring:
redis:
client-name: test
2.pom.xml
<!-- 打包时读取配置文件设置,任意打包各种环境文件,配合下面的build中的resources标签一同使用 --> <profiles> <!--生产环境配置文件--> <profile> <id>prod</id> <properties> <profiles.active>prod</profiles.active> </properties> </profile> <!--测试环境配置文件--> <profile> <id>test</id> <properties> <profiles.active>test</profiles.active> </properties> </profile> </profiles>
<build> <resources> <resource> <filtering>true</filtering> <!-- 加载目录 --> <directory>${basedir}/src/main/resources</directory> <!-- 包括配置文件,根据打包时选择运行环境 --> <includes> <!-- 包括application.properties ,能让配置文件中的@profiles.active@生效 --> <include>application.properties</include> <!-- 根据选择的换下,包括配置文件 --> <include>application-${profiles.active}.yaml</include> <include>application-${profiles.active}-redis.yaml</include> </includes> </resource> </resources> </build>
3.idea 操作
4.输出包
以上两种方法中第一种,修改配置文件配置环境有一个修改配置命令操作
如果你修改配置文件为测试环境,打包成功后可以通过命令来修改配置文件中的值来重新选择正式环境或者测试环境等
操作如下
修改配置类问测试环境,清理打包
找到打包文件夹,执行cmd
在命令框中执行
java -jar StudyWork1-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod
以上可以看到 修改配置文件可以调整环境
通过 -- 命令修改配置文件中属性值,有利于一个包可以放在任何环境