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();
    }
}
相关推荐
番茄炒鸡蛋加糖4 小时前
MySQL 实战调优& 分表基础
数据库·mysql
味悲4 小时前
Linux提权
linux·服务器·安全
万亿少女的梦1684 小时前
基于Spring Boot的游戏交易管理系统设计与实现
java·spring boot·mysql·系统设计·交易管理
Database_Cool_4 小时前
云数据库如何保证高可用、故障了怎么办:阿里云 RDS MySQL 高可用架构详解
数据库·mysql·阿里云
中微极客5 小时前
Veo视频生成与Gemini Agent平台集成实践
数据库·人工智能·oracle·音视频
闲猫5 小时前
Agent工程实践:从WorkFlow到多Agent协作的落地笔记
java·服务器·前端
江湖十年5 小时前
Go 语言中 YAML to JSON 踩坑笔记
后端·go·json
笨蛋不要掉眼泪5 小时前
Java虚拟机:常用参数
java·开发语言·python
一棵星5 小时前
内网 MySQL 表结构一键导出 Word 文档:直连 + Agent 双模式实战
数据库·mysql·word
亦暖筑序6 小时前
AgentScope-Java 入门:用 Middleware 审计 Agent 调用
java·ai编程·agentscope