获取application.yml中的配置数据
情景假设我们要项目需要修改配置信息 配置信息可以放在源码中 也可以放在application.yml 文件中 如果放在源码中我们要修改就得修改源码然后重新编译打包发布 所以配置信息放入application.yml 文件中比较好 但是要如何获取 application.yml 文件的信息呢?获取application.yml的配置信息
大体有两种方法可以获取 以下面为例
假设我要获取yml文件中的一下信息1
2
3
4
5minio:
endpoint: http://locahost:9000
access-key: minioadmin
secret-key: minioadmin
bucket-name: lovehouse
@value() 通过这个注解实现如下
1 | package com.orchids.springmybatisplus.common.minio; |
面向对象思想 将配置内容抽象成一个类 具体实现如下
类名必须为这种格式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24package com.orchids.springmybatisplus.common.minio;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
/**
* @Author qwh
* @Date 2024/6/1 9:54
*/
public class MinioProperties {
private String endpoint;
private String accessKey;
private String secretKey;
private String bucketName;
}这里@ConfigurationProperties 注解会报错 解决方法有两种
当较少xxxproperties类时在对应configuraton 类中添加注解@EnableConfigurationProperties @EnableConfigurationProperties(MinioProperties.class)
当有很多时可以添加@ConfigurationPropertiesScan 注解 注解内容为包名
@ConfigurationPropertiesScan(“com.orchids.lovehouse.common.minio”)编写对应的配置类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25package com.orchids.lovehouse.common.minio;
import io.minio.MinioClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @Author qwh
* @Date 2024/6/1 9:29
*/
//@ConfigurationPropertiesScan("com.common.minio")
public class MinioConfiguration {
private MinioProperties properties;
public MinioClient minioClient(){
return MinioClient.builder().endpoint(properties.getEndpoint()).credentials(properties.getAccessKey(),properties.getSecretKey()).build();
}
}
评论