前言:
小编用的是Springboot,在实际开发过程中,开发环境和测试环境的数据库的等参数存在差异,往往有些功能需要在代码中读取配置文件中的值,第一种方式是可以用@Value() 注解,第二种方式是直接读取配置文件中的值。
该注解的作用是将我们配置文件的属性读出来,有@Value(“${}”)和@Value(“#{}”)两种方式。
第一种方式:
@Value()使用的俩种方式。
@Value(${})
(1)读取application.properties中的值
spring.data.username=root
在具体的代码中可以使用,如下:
@Value(${spring.data.username})
private String name; 打印出来的值:root
@Value(#{})
@Value("#{}") 表示SpEl表达式通常用来获取bean的属性,或者调用bean的某个方法。当然还有可以表示常量
(1)赋值
@Value("1")
private int number;//打印出来的值:为1
(2)顺便学习一下SpEl表达式是什么?
SpEL(Spring Expression Language),即Spring表达式语言,是比JSP的EL更强大的一种表达式语言。为什么要总结SpEL,因为它可以在运行时查询和操作数据,尤其是数组列表型数据,因此可以缩减代码量,优化代码结构。个人认为很有用。
SpEl表达式的第一种用法就用在@Value注解上,
关于其的详细讲解可参考:https://blog.csdn.net/u010086122/article/details/81566515
第二种方式:
需要注意的是StrUtil 指的是我这个方法所在的类名。
public static Object getParametersFromProperties(String key){
InputStream is=StrUtil.class.getClassLoader().getResourceAsStream("application.properties");
BufferedReader br= new BufferedReader(new InputStreamReader(is));
Properties props = new Properties();
try {
props.load(br);
return props.get(key);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}