#SpringBoot最常用的3种读取properties的方法
由于最近不小心被坑了一波,所以准备记录下这个坑。
第一种Values注解获取
配置文件为默认读取的
=app msg!
java代码:
@Value("${}")
private String msg;
注意点:
在配置文件中不存在的话,会报异常。
- @Value("${}")是会扫描所有的properties配置文件中的属性名。
2.如果同时项目中存在多个properties文件,然后配置文件都有属性的情况下,会默认选择第一个加载的properties中取值。
第二种Environment类获取
使用前提,需要在导入对应properties
@PropertySource(“classpath:”)
一般直接写于springbootapplication或者专门的配置类上即可。
@SpringBootApplication
@EnableTransactionManagement
@PropertySource("classpath:")
public class SpringbootMybatisplusApplication {
public static void main(String[] args) {
(, args);
}
}
java代码:
@Autowired
private Environment env;
@RequestMapping(value = "/c2", method = )
public String c2() {
(("spring."));
(("spring."));
return "The c2 : " +("");
}
通过@Autowired注入Environment来获取参数配置
同样,这个也是扫描所有的properties的属性名。
第三种@ConfigurationProperties注解
配置文件
spring.=ccccc1
java代码:
@Component
@PropertySource("classpath:")//可以指定配置文件
@ConfigurationProperties(prefix="spring.c1")
//如果在配置文件中为spring.=ccccc1 有统一的前名,可以perfix提取出来,然后剩下的name名字会自动注入类中所对应的name
public class Config1 {
String name;
public String getName() {
return name;
}
public void setName(String name) {
= name;
}
}
获取name
@RequestMapping(value = "/c1", method = )
public String c1() {
return "The c1 : " +();
}
通过@Autowired注入Environment来获取参数配置
同样,这个也是扫描所有的properties的属性名。