在平时项目中,需要用注释读取配置文件application.yml里的属性信息。平常使用的就是@value和@ConfigurationProperties,接下来展示配置文件:
#单点登陆配置
cas:
#cas服务端的登录地址
server-login-url: http://127.0.0.1:3216/sso/login
#cas服务端的地址
server-url-prefix: http://127.0.0.1:3216/sso
#当前服务器的地址(客户端)
client-host-url: http://127.0.0.1:8899
#Ticket校验器使用Cas3
validation-type: cas3
接下来展示@value的用法
@Data
@Configuration
public class CASAutoConfig1 {
@Value("${cas.server-url-prefix}")
private String serverUrlPrefix;
@Value("${cas.server-login-url}")
private String serverLoginUrl;
@Value("${cas.client-host-url}")
private String clientHostUrl;
@Value("${cas.validation-type}")
private String validationType;
}
接下来在展示@ConfigurationProperties用法
@Data
@Configuration
@ConfigurationProperties(prefix = "cas")
public class CASAutoConfig {
private String serverUrlPrefix;
private String serverLoginUrl;
private String clientHostUrl;
private String validationType;
}
亲测两种方式都能实现。根据不同场景选择不同注解。
@Value对应的属性如果不配置对应的值,则会报错,而@ConfigurationProperties不会。
还有个Spring提供的@PropertySource可以指定读取配置文件,指定配置文件对Javabean文件的注入。但是需要注意的是@PropertySource默认只能读取.properties文件,而读取.yml文件需要重写读取实现工厂。可以看以下文章
PropertySource注解读取无法读取yaml文件_qq_45804998的博客-CSDN博客_propertysource注解 找不到文件