Spring中的参数统一配置

情景:

在一个Spring项目中通常存在如数据库 url,账号,密码等需要人为配置的参数,此类参数并非固定,很可能会发生变化,所以一般会统一集中在一个文件中,方便统一管理

解决方法

1.在项目resources目录下,创建application.yml文件

复制代码
minio:
  endpoint: http://<hostname>:<port>
  access-key: <access-key>
  secret-key: <secret-key>
  bucket-name: <bucket-name>

2.创建参数类

复制代码
设置前缀,yml文件的参数会自动映射到类中的参数上(自动开启驼峰命名)
@ConfigurationProperties(prefix = "minio")
@Data
public class MinioProperties {
    private String endpoint;
    private String accessKey;
    private String secretKey;
    private String bucketName;
}

3.创建配置类

复制代码
@Configuration
//@EnableConfigurationProperties({MinioProperties.class})
//在指定包下,自动查找,引用之前设置的参数类
@ConfigurationPropertiesScan("com.atguigu.lease.common.minio")
public class MinioConfiguration {
    @Autowired
    private MinioProperties minioProperties;


    @Bean
    public MinioClient minioClient() {
        return new MinioClient.Builder().endpoint(minioProperties.getEndpoint())
                .credentials(minioProperties.getAccessKey(), minioProperties.getSecretKey())
                .build();
    }
}
相关推荐
yexuhgu几秒前
如何在 JavaScript 循环中动态构建 HTML 字符串
jvm·数据库·python
西凉的悲伤几秒前
java通过url获取 jpg、png、pdf 文件格式
java
SunnyDays10111 分钟前
Java 实现 PDF 附件的添加与删除:四种实用方法
java·pdf·附件
wang3zc2 分钟前
使用BERTopic对名言数据集进行批量主题建模的完整实践指南
jvm·数据库·python
SZLSDH4 分钟前
数字孪生IOC的“双引擎”架构:当业务编排遇上渲染管线,如何实现场景适配?
数据库·ai·架构·数字孪生·数据可视化·智能体
phltxy6 分钟前
Redis 持久化机制
java·redis·git
m0_609160497 分钟前
Go语言如何做协程调度_Go语言协程调度原理教程【实用】
jvm·数据库·python
2301_8125396712 分钟前
golang如何实现全量数据迁移_golang全量数据迁移实现详解
jvm·数据库·python
顾随13 分钟前
(2)达梦数据库--SQl基础实践
前端·数据库·sql
omenkk713 分钟前
网络IO模型-从BIO到IO多路复用
服务器·网络