四种注解
先看配置文件 application.properties
user.username=CCCCXXX
user.password=123123123
user.age=18
user.salary=2000.00
1. @Value读取
@Service
public class UserServiceImpl{
@Value("${user.username}")
private String username;
@Value("${user.password}")
private String password;
@Value("${user.age}")
private int age;
@Value("${user.saary}")
private double salary;
// 省略...
}
2. @PropertySource读取
@Service
@PropertySource(value="application.properties")
public class UserServiceImpl{
@Value("${user.username}")
private String username;
@Value("${user.password}")
private String password;
@Value("${user.age}")
private int age;
@Value("${user.saary}")
private double salary;
// 省略...
}
配合@Value一起使用
!!!注意!!!@PropertySource读取不支持yml文件配置
3. @Environment读取
配置文件里面所有的配置都可以用Environment来获取
@Service
public class UserServiceImpl{
@Autowired
private Environment env;
private void getUsername(){
String username = env.getProperty("user.username");
}
// 省略...
}
4. @ConfigurationProperties读取
**这个注解就更屌了…**可以配合着别的注解一起使用
@Service
@ConfigurationProperties(prefix="user")
public class UserServiceImpl{
private String username;
private String password;
private int age;
private double salary;
// 省略...
}
5. @ConfigurationProperties + @PropertySource注解一起使用
假如我在resources文件夹新建一个文件夹config
在创建一个配置文件two.properties内容不变,我可以这样使用
@Service
@PropertySource(value="config/two.properties")
@ConfigurationProperties(prefix="user")
public class UserServiceImpl{
private String username;
private String password;
private int age;
private double salary;
// 省略...
}
综上所述四种注解均能从配置文件中读取自定义参数,也可以相互之间搭配使用