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();
    }
}
相关推荐
星火102410 小时前
【LangChain4j系列05】RAG 检索增强生成完整指南
人工智能·后端
Suxing910 小时前
C语言基础分享:从“租房”到“拆迁”,C语言动态内存管理
java·数据结构·算法
减瓦10 小时前
别让 Java 版本选择变成生产事故
java
ikun_文10 小时前
Java集合框架Collection拓展进阶
java·java ee
啦啦啦啦啦zzzz10 小时前
moduo网络库 Acceptor TcpConnection
服务器·网络·c++·reactor·网络库
技术长镜头10 小时前
别再只说“走 B+Tree”:一条 SQL 在 InnoDB 中的完整寻址过程
后端·mysql
SomeB1oody10 小时前
【RustyML入门】3.8. 正则化与归一化层
开发语言·后端·机器学习·rust·教程
云烟成雨TD10 小时前
Micrometer 系列【63】统一观测:基于 Spring Boot 的生产级演示案例 | 基于 OTLP 集成 Prometheus + Jaeger
spring boot·云原生·prometheus
星卯教育tony10 小时前
NOI Linux 2.0 服务器多用户网页桌面部署方案(腾讯云轻量Ubuntu20.04专属版 CSP复赛比赛环境搭建免安装虚拟机 )
linux·服务器·腾讯云
倒流时光三十年10 小时前
第六阶段 57 · ES|QL 与 SQL API(用 SQL 查 ES)
数据库·sql·elasticsearch