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();
    }
}
相关推荐
Louis Maos26 分钟前
堆与栈分配的本质区别
java·开发语言
赵渝强老师27 分钟前
【赵渝强老师】国产金仓数据库的表空间
数据库·postgresql
ELI_He99941 分钟前
hyperf auth模块
后端·php
人道领域44 分钟前
【零基础学java】(HashMap源码解析--添加第一个元素)
java·哈希算法·散列表
chenyuhao20241 小时前
Linux网络编程:TCP协议
linux·运维·服务器·网络协议·tcp/ip·udp·tcp
毕设源码-朱学姐1 小时前
【开题答辩全过程】以 果蔬禽蛋生鲜食品采购配送系统的设计与实现为例,包含答辩的问题和答案
java·开发语言
廋到被风吹走1 小时前
【数据库】【Oracle】PL/SQL 存储过程与函数
数据库·sql·oracle
Coder_Boy_1 小时前
基于SpringAI的智能AIOps项目: 业务流程与规则规范(企业级)
人工智能·spring·spring cloud
csdnZCjava1 小时前
VMware 14无法连接 MKS: 套接字连接尝试次数太多;正在放弃
运维·服务器
hweiyu001 小时前
Linux 命令:xz
linux·运维·服务器