SpringBoot 读取自定义Properties参数

文章介绍了如何在Spring中不使用Application.yml或Application.properties而是从自定义的info.properties文件中读取参数。提到了两种实现方式:@Value注解和@PropertySource与@ConfigurationProperties结合使用。@Value直接获取属性值,而后者通过指定前缀加载整个配置类。文章提供了一个示例Bean类及Controller测试用例来展示效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1. 概述

2. 实现方式

        2.1 @Value方式

        2.2 @PropertySource与@ConfigurationProperties相结合

3. 结束


1. 概述

        最近想尝试写一个定时任务管理,相关参数不想在Spring的配置文件Application.yml或者Application.properties获取。想自己新建一个properties文件。顺便对参数读取进行学习总结。

2. 实现方式

        2.1 @Value方式

        该方式可以从Application.properties或者Application.yml获取

        在文件中可以自定义参数,比如这样:

        

         获取写成这样:

        

        2.2 @PropertySource与@ConfigurationProperties相结合

        pfrefix="syjk" 表示参数带有前缀"syjk"

        我将参数写在info.properties下

syjk.loginurl=url1
syjk.uploadurl=url2
syjk.username=102020
syjk.password=365241
syjk.realtime=5

        然后定义一个Bean类,

@Data
@Component
@PropertySource(value = "classpath:info.properties")
@ConfigurationProperties(prefix = "syjk")
public class Info {
    private String loginurl;    //授权地址
    private String uploadurl;   //上传地址
    private String username;    //账号
    private String password;    //密码
    private int realtime;       //定时间隔
}

        方便看效果,我在controller中来测试下:

         调用getUserList接口,后台显示与info.properties设置一致

3. 结束

        学习总结.

### 定义并读取自定义配置类 为了在 Spring Boot读取自定义配置类,通常会采用 `@ConfigurationProperties` 注解来简化这一过程。下面是一个完整的例子展示如何创建和使用自定义配置。 #### 创建自定义配置类 首先,在应用程序中定义一个 Java 类用于保存配置数据,并标注此 Java Bean 使用 `@Component` 和 `@ConfigurationProperties(prefix="myapp")` 来指示这是一个配置属性bean以及其前缀[^2]: ```java import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Component @ConfigurationProperties(prefix = "myapp") public class MyCustomConfig { private String name; private int port; // Getters and Setters are required by @ConfigurationProperties public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPort() { return port; } public void setPort(int port) { this.port = port; } } ``` #### 配置文件设置 接着,在项目的资源目录下的 application.yml 或者 application.properties 文件里添加对应的键值对作为配置项[^4]: 对于application.yml: ```yaml myapp: name: MyAppName port: 8090 ``` 对于application.properties: ```properties myapp.name=MyAppName myapp.port=8090 ``` #### 将配置注入到服务层或其他组件 为了让其他部分能够访问这个配置对象,可以在任何需要的地方通过 `@Autowired` 进行自动装配[^5]: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class ConfigController { private final MyCustomConfig myCustomConfig; @Autowired public ConfigController(MyCustomConfig myCustomConfig){ this.myCustomConfig = myCustomConfig; } @GetMapping("/config") public String getConfig(){ return "Application Name is "+myCustomConfig.getName()+" running on Port:"+myCustomConfig.getPort(); } } ``` 这样就完成了整个流程——从定义配置类到最后将其应用于具体的服务逻辑之中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值