SpringBoot如何从配置文件中读取配置参数

 更新时间:2024年01月13日 15:19:44   作者:唯空城  
这篇文章主要介绍了SpringBoot如何从配置文件中读取配置参数问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

前言

在生产环境中,经常会用到各种各样的参数,为了避免代码太过死板,一般将参数写入配置文件,然后需要用到参数的时候从配置文件中读取

下面总结出几种从配置文件中读取配置参数的方法。        

环境搭建

现有配置文件application.properties,内容如下所示

# 接口请求基础路径
base.param.url = http://192.168.1.110:18081/interaction/v1/
# 平台标识
base.param.platformID = 123456789
# 平台密钥
base.param.platformSecret = AaBbCcDd

下面实现从配置文件中读取配置参数 

@Value注解读取配置参数

1、非静态参数

一般情况下直接使用@Value注解即可获取到参数,然后就可以在方法中使用该参数,比如在控制层中使用

使用方法如下:

@Value("${base.param.url}")
private String baseUrl;
 
@Value("${base.param.platformID}")
private String platformID;
 
@Value("${base.param.platformSecret}")
private String platformSecret;

2、静态参数

当工具类中的方法需要从配置文件读取参数时,需要将参数定义为静态,才可以在静态方法中获取到,这时候就不能只配置个@Value注解就行了

实现方法如下:

@Component
public class Common {
 
    private static String platformID;
 
    @Value("${base.param.platformID}")
    public void setPlatformID(String platformID) {
        Common.platformID = platformID;
    }
}

将@Value注解在set方法上,并且类上要加@Component注解。

@PropertySource注解创建配置类

目前该注解只支持properties文件引入,并不支持yml。

1、maven依赖

<!--使用xml或properties配置所依赖的包 @PropertySource-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

2、创建配置类

import lombok.Data;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
 
@Data
@SpringBootConfiguration
@PropertySource(value = {"classpath:application.properties"})
@ConfigurationProperties(prefix = "base.param")
public class ParamProperties {
 
    // 接口请求基础路径
    private String url;
 
    // 平台标识
    private String platformID;
 
    // 平台密钥
    private String platformSecret;
 
}

其中:

  • classpath指向对应的配置文件名称
  • prefix指向配置文件中的名称

3、使用方式

public class ResponseTask {
    
    @Autowired
    private ParamProperties paramProperties;
 
    private String getToken(){
        TokenEntity tokenEntity = new TokenEntity();
        tokenEntity.setPlatformID(paramProperties.getPlatformID());
        tokenEntity.setPlatformSecret(paramProperties.getPlatformSecret());
    }
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java调用百度定位api服务获取地理位置示例

    java调用百度定位api服务获取地理位置示例

    java调用百度定位api服务获取地理位置示例,大家参考使用吧
    2013-12-12
  • Java Controller实现参数验证与统一异常处理流程详细讲解

    Java Controller实现参数验证与统一异常处理流程详细讲解

    Controller是Spring接受并处理网页请求的组件,是整个应用的入口,因此学会Controller的常用注解对理解一个应用是重中之重。SpringBoot的Controller中经常会用到注解@Controller、@RestController、@RequestMapping、@RequestBody等
    2023-01-01
  • Java eclipse doc文档生成流程解析

    Java eclipse doc文档生成流程解析

    这篇文章主要介绍了Java eclipse doc文档生成流程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • Java基础之static关键字的使用讲解

    Java基础之static关键字的使用讲解

    这篇文章主要介绍了Java基础之static关键字的使用讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • IDEA 中使用 Hudi的示例代码

    IDEA 中使用 Hudi的示例代码

    这篇文章主要介绍了IDEA 中使用 Hudi的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • java读取excel文件的两种方法

    java读取excel文件的两种方法

    这篇文章主要为大家详细介绍了java读取excel文件的两种方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • 基于Java SSM实现在线点餐系统

    基于Java SSM实现在线点餐系统

    本项目基于Java SSM框架实现在线点餐系统,主要实现系统的在线点餐功能。文中的示例代码讲解详细,感兴趣的可以跟随小编一起学习一下
    2022-02-02
  • SpringBoot集成OAuth2.0的实现示例

    SpringBoot集成OAuth2.0的实现示例

    OAuth2.0是安全授权协议,通过访问令牌替代密码,保障用户数据安全,适用于社交登录、第三方数据访问等场景,下面就来介绍一下SpringBoot集成OAuth2.0,感兴趣的可以了解一下
    2025-06-06
  • Spring Cloud 2020.0.0正式发布再见了Netflix

    Spring Cloud 2020.0.0正式发布再见了Netflix

    这篇文章主要介绍了Spring Cloud 2020.0.0正式发布再见了Netflix,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Mybatis中isNotNull与isNotEmpty的使用心得

    Mybatis中isNotNull与isNotEmpty的使用心得

    这篇文章主要介绍了Mybatis中isNotNull与isNotEmpty的使用心得,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03

最新评论