主要有三种方式从application.properties属性文件中读取信息。分别为使用@value注解,使用@ConfigurationProperties注解,以及使用Environment 对象。
使用@Value注解
创建一个Spring Boot项目,在属性文件application.properties中加入下列内容:
email.username=testUser
email.pwd=12345
email.retry=3
创建java类,并在属性上增加@value注解。
@Service
public class EmailService {
@Value("${email.username}")
private String username;
@Value("${email.pwd}")
private String pwd;
@Value("${email.retry}")
private int retry;
public void sendEmail() {
System.out.println("reading value from properties file using @value annotation");
System.out.println("username =" + username);
System.out.println("pwd =" + pwd);
System.out.println("retry =" + retry);
}
}
使用@ConfigurationProperties注解
首先定义pojo类,每个类的属性名称和属性文件中key保持一致。因为每个key都有前缀email,所以使用@ConfigurationProperties注解。
@Component
@Data
@ConfigurationProperties("email")
public class EmailConfig {
private String username;
private String pwd;
private int retry;
}
使用Environment 对象
使用Environment 对象的getProperty(“Key”)的方法获取信息:
@Service
public class EmailBiz {
private final Environment env;
public EmailBiz(Environment env) {
this.env = env;
}
public void sendMail(){
System.out.println("values from application properties using Environment ");
System.out.println("username ="+ env.getProperty("email.username"));
System.out.println("pwd ="+ env.getProperty("email.pwd"));
System.out.println("retry =" + env.getProperty("email.retry"));
}
}
总结
本文介绍了三种方式获取Spring Boot的属性文件的值。