application.properties配置文件的读取
Environment方式读取
框架中有一个org.springframework.core.env.Environment类,可以读取application.properties中配置的值。
用法如下,我们可以看到直接将Environment注入进来,然后就可以使用getProperty方法来获取配置的值了,
参数是配置的名称。
@RestController
public class ConfigController {
@Autowired
private Environment environment;
/**
* 通过配置的key获取value<br>
* {key:.+}是为了解决通过url参数访问的时候小数点丢失的问题
* @param key
* @return
*/
@RequestMapping("/config/{key:.+}")
Object getConfig(@PathVariable String key){
return environment.getProperty(key);
}
}
我们获取下之前配置的tomcat端口,http://localhost:8090/config/server.port可以看到输出的结果正是你配置的值。
@Value注解方式读取
@RestController public class ConfigController { @Value("${server.port}") private String serverPort; @RequestMapping("/config/serverPort") Object serverPort(){ return serverPort; } }
@ConfigurationProperties(prefix="")
@ConfigurationProperties 加在类上或方法上,可以和@PropertySource组合使用
加在方法上:
@Bean("primaryDataSource")
@Primary
@ConfigurationProperties("primary.datasource")
public DataSource buildPrimaryDataSource() {
return DataSourceBuilder.create().build();
}
@ConfigurationProperties会根据配置文件的信息调用返回对象的set方法
加在类上:
@Component
@ConfigurationProperties("sharding.datasource")
public class DataSourceConfig {
private String url;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
@ConfigurationProperties会根据配置文件的信息调用声明对象的set方法
自定义配置文件的读取方式