一般地我们通过@Value来获取值,然而有些时候配置项比较多,数据结构比较复杂。我们使用@ConfigurationProperties获取配置文件的中配置项的前缀来获取配置,然而有的时候会失效。
@Data
@Component("MinioConfig")
@ConfigurationProperties(prefix = "minio")
public class MinioConfig {
private String endPoint;
private String accessKey;
private String secretKey;
@Bean
public MinioClient minioClient() {
return MinioClient.builder()
.endpoint(endPoint)
.credentials(accessKey, secretKey)
.build();
}
}
#minio的配置Ip是http请求格式 其次端口为api端口号不是web访问端口
minio:
endPoint: http://192.168.150.129:19000
accessKey: minioadmin
secretKey: minioadmin
spring:
application:
name: ElasticsearchAndMinio
# 配置文件上传大小限制
servlet:
multipart:
max-file-size: 200MB
max-request-size: 200MB
elasticsearch:
host: 192.168.150.129
port: 9200
出现的问题的原因有可能是以下原因:
- 没有将对象交付给IOC容器进行管理,这个不多赘述了CSDN多数都是围绕这个来说的。
- 配置文件的属性值和对象类中的属性不匹配,这个好好看一下就行了。
- 没有setter方法,这个是比较容易漏的因为没有setter方法会导致无法赋值。
- 倘若你认为前三条你都满足但还是配置没去取到,建议严查 @Setter 以及 @Data注解,观察是否把包导错了,如果没有导错了,将这两个注解删掉重新写一下再试试。