SpringBoot⾃定义参数
2种取值⽅式区别是使⽤@Value注解的属性,必须在配置⽂件中存在,否则启动检查不通过,会报错导致⽆法启动。JAVA类
1, 使⽤@Value注解⽅式
@Component
public class AliyunConfig {
@Value("${oss.accessKeyId}")
private String accessKeyId;
@Value("${oss.accessKeySecret}")
private String accessKeySecret;
...
}
2, 使⽤@ConfigurationProperties注解⽅式
@ConfigurationProperties(prefix = "oss")
public class AliyunConfig {
private String accessKeyId;
private String accessKeySecret;
...
}
配置⽂件
oss:
accessKeyId: xxxxxx
accessKeySecret: xxxxxxxxx
@ConfigurationProperties 配置激活⽅式
1, 增加@Component注解
让 Component Scan 扫描到, 显然当类所在的包被 Spring @ComponentScan 注解扫描到才会⽣效
2, 通过 Spring 的 Java Configuration 特性实现同样的效果
@Configuration
public class BeanConfig {
@Bean
public AliyunConfig aliyunConfig() {
return new AliyunConfig();
}
}
3,使⽤ @EnableConfigurationProperties 注解
让我们的类被 Spring Boot 所知道,在该注解中其实是⽤了@Import(EnableConfigurationPropertiesImportSelector.class) 实现@Configuration
@EnableConfigurationProperties(AliyunConfig.class)
public class BeanConfig {
}
@ConfigurationProperties 配置验证
类使⽤@Validated注解,在字段上添加bean validation注解
@Data
@ConfigurationProperties(prefix = "oss")
@Validated
public class AliyunConfig {
spring framework网络系统参数@NotNull private String accessKeyId;
private String accessKeySecret;    ...
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。