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();
    }
}
相关推荐
摇滚侠19 小时前
SpringMVC 入门到实战 简介和入门案例 01-13
java·后端·spring·intellij-idea
未若君雅裁19 小时前
JVM 垃圾回收器全景与G1深度解析
java·开发语言·jvm
霸道流氓气质19 小时前
Java 大数据量异步处理方案:线程池 vs 消息队列
java·开发语言
devilnumber19 小时前
想真正吃透 + 灵活运用 Java 代理模式
java·开发语言·代理模式
蝎子莱莱爱打怪19 小时前
自用推荐|XTerminal:我心中 SSH 客户端的终极形态
java·后端·程序员
AIGS00119 小时前
向量空间JBoltAI:重塑工业智能的四大支柱
java·人工智能·ai大模型应用
小马爱打代码19 小时前
框架 - 组件 - 中间件:生产级参数配置指引
数据库·中间件
刘科领19 小时前
修改jdk 第一步: 仓库以及构建(jdk17)
java·开发语言
道友可好19 小时前
用 Linter 驾驭 AI:机械化执行的艺术
前端·人工智能·后端
C+-C资深大佬19 小时前
C++ 中的 constexpr与 const区
java·开发语言·c++