SpringBoot配置文件与生产环境和开发环境配置
一、SpringBoot生产环境和开发环境配置
1.定义生产环境配置文件为 application-product.yml
[java]server:
port: 8081
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/productDb
username: root
password: 123456 [/java]
2.定义开发环境配置文件为 application-dev.yml
[java]server:
port: 8080
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/devlepmentDb
username: root
password: kf123 [/java]
3.配置文件application.yml中设置当前环境
[java]spring:
profiles:
active: dev[/java]
二、SpringBoot获取配置文件数据有两种方式
首先在配置文件application.yml中准备好数据
[java]test:
username: viktor
password: 123
[/java]
获取方式一:通过@Value注解获取
缺点:需要在每个元素上添加注解
[java]@Controller
@RequestMapping("/config")
public class ConfigeController {
@Value(value="${test.username}")
private String userName;
@Value(value="${test.password}")
private String passWord;
@RequestMapping("")
@ResponseBody
public String config() {
return "config == "+userName+" "+passWord;
}
}[/java]
获取方式二: 通过@ConfigurationProperties注解获取
1.在类上添加注解@ConfigurationProperties(prefix=”test”); prefix=”test”为获取元素前缀,如:test.username
2.类中属性名与配置中元素名相同
3.添加geter,seter方法
4.也是重点,添加@ConfigurationProperties注解依赖
[java]<!– 支持 @ConfigurationProperties 注解 yml配置文件–>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>[/java]
5.ConfigeControllerNew.java
[java]@Controller
@RequestMapping("/confignew")
@ConfigurationProperties(prefix="test")
public class ConfigeControllerNew {
private String username;
private String password;
@RequestMapping("")
@ResponseBody
public String config() {
return "config == "+username+" "+password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}[/java]
实际应用
1. 配置文件application.yml包含如下信息
[java]user
username: 张三
age: 23
[/java]
2. 定义获取配置文件属性的工具类
[java]
@Component
@ConfigurationProperties(prefix = "user")
public class UserProperties {
private String username;
private Integer age;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username= username;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}[/java]
3. 在Controller类或其它中使用
[java]@RestController
@RequestMapping("/hello")
public class HelloController {
@Autowired
private UserProperties userProperties;
@GetMapping(value = "/proper")
public String say() {
return userProperties.getUsername();
}
}[/java]
转载请注明来源:SpringBoot配置文件与生产环境和开发环境配置



























