1.使用@Value注解
/**
* 读取application.yml中参数
*/
@Component
public class MainConfig1 {
@Value("${main1.username}")
private String username;
@Value("${main1.password}")
private String password;
@Override
public String toString() {
return "MainConfig{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
yml中对应参数
#自定义参数
main1:
username: main1
password: main1
2.使用@ConfigurationProperties注解,该注解标注的类为一个properties配置类,使用prefix对应参数的前缀
/**
* 读取application.yml中参数
*/
@Component
@ConfigurationProperties(prefix = "main2")
public class MainConfig2 {
private String username;
private String password;
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "MainConfig2{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
yml中对应的参数
main2:
username: main2
password: main2
3.使用@PropertySource注解读取资源目录下配置文件的参数
@Component
@PropertySource("properties/main3.properties")
public class MainConfig3 {
@Value("${main3.username}")
private String username;
@Value("${main3.password}")
private String password;
@Override
public String toString() {
return "MainConfig3{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
resource资源目录下properties目录下的main3.properties
main3.username=main3
main3.password=main3
4.组合使用@ConfigurationProperties和PropertySource注解
@Component
@ConfigurationProperties(prefix = "main4")
@PropertySource("properties/main4.properties")
public class MainConfig4 {
private String username;
private String password;
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "MainConfig4{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
resource资源目录下properties目录下的main4.properties
main4.username=main4
main4.password=main4
5.使用Spring Boot中的Environment对象
@RestController
@RequestMapping("/main")
public class MainController {
@Autowired
private Environment env;
@GetMapping("/env")
public String env() {
String main1 = env.getProperty("main1.username") + env.getProperty("main1.password");
String main2 = env.getProperty("main2.username") + env.getProperty("main2.password");
String main3 = env.getProperty("main3.username") + env.getProperty("main3.password");
String main4 = env.getProperty("main4.username") + env.getProperty("main4.password");
return main1 + "\n" + main2 + "\n" + main3 + "\n" + main4 + "\n";
}
}