项目中有些情况需要将配置信息写到application.yml中,然后读到java代码中。
1.读取单配置信息
application.yml中配置
url:
orderUrl: http://localhost:8082
在业务代码使用@Value注解获取配置信息
@Value("${url.orderUrl}")
private String orderUrl;
2.读取多配置信息
如果application.yml中配置信息较多,通过@Value逐个获取值较繁琐。可以考虑封装到一个配置类中,使用@ConfigurationProperties 注解并且使用 prefix 来指定一个前缀,然后该类中的属性名就是配置中去掉前缀后的名字 ,一一对应即可。同时,该类上面需要加上 @Component 注解,把该类作为组件放到Spring容器中,让Spring 去管理,我们使用的时候直接注入即可。
rel-info:
ip: xx.xx.xx.xx
port: xx
timeOut: 8000
mobileno: xxxxxxx
@Component
@ConfigurationProperties(Prefix="rel-info")
publc class RelInfoProperties{
private String ip;
private int port;
private int timeOut;
private String mobileno;
//...省略getter,setter
}
使用 @ConfigurationProperties 注解引入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
最后在Controller类或其他类中,通过@Resource注解将刚写好的配置类注入进来,即可读取配置文件中rel-info前缀下的信息
public class TestController {
@Resource
private RelInfoProperties relInfoProperties;
//...其余省略
}