《SpringBoot实战篇》静态方法使用配置文件中的参数

您所在的位置:网站首页 springboot静态资源配置原理 《SpringBoot实战篇》静态方法使用配置文件中的参数

《SpringBoot实战篇》静态方法使用配置文件中的参数

2023-06-25 11:05| 来源: 网络整理| 查看: 265

一、前景概要

Spring Boot是一个用于快速开发的微服务框架。在开发Spring Boot应用时,我们通常需要配置一些外部参数,例如数据库连接信息、端口号等。Spring Boot提供了多种方式来加载这些配置文件参数。在本文中,我们将介绍如何在Spring Boot应用中加载配置文件参数,并且在静态方法中可以调用这些参数。

二、配置参数

在application.properties文件中添加参数

myapp.apikey=abcd-12345678

或是在application.yml文件中添加参数

myapp: apikey: abce-12345678 三、将参数加载出来的多个方法

在Spring Boot中,加载配置文件中的参数有以下几种方法:

使用@Value注解加载:

在需要加载配置文件中的参数的类或方法上,使用@Value注解注入需要的配置参数。例如:

@Value("${myapp.apikey}") private String apiKey;

这里通过使用${}语法,注入了myapp.apikey参数的值到apiKey变量中,这个参数可以通过在application.properties或application.yml文件中定义。

使用Environment接口加载:

在需要获取配置文件中的参数的类中,使用Environment接口的方法获取需要的参数。例如:

@Autowired private Environment env; public void myMethod() { String apiKey = env.getProperty("myapp.apikey"); }

这里通过@Autowired注解把Environment接口注入到类中,然后通过getProperty()方法获取需要的参数。

使用@ConfigurationProperties注解加载:

定义一个与配置文件对应的实体类,然后通过@ConfigurationProperties注解注入该实体类即可。例如:

@Component @ConfigurationProperties(prefix = "myapp") public class MyProperties { private String apikey; // getter and setter }

在MyProperties类上,使用@ConfigurationProperties注解指定了配置文件中的前缀为myapp,然后在需要注入该类的位置使用@Autowired注解即可。

四、将加载出来的参数加载到静态变量里面 package com.example.udpDemo.common.utils; import jakarta.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; /** * @author wangdachuan * @version 1.0 * @date 2023/5/5 22:30 **/ @Component public class EnvironmentUtil { public static String appKey; @Value("${app.key}") private String tmpAppKey; /** * 初始化方法,使用@PostConstruct注解能够在对象通过@Component初始化后调用该方法 * ,将通过@Value加载的值赋值给静态变量 */ @PostConstruct private void init(){ appKey = tmpAppKey; } }

在上面的这个类中,通过几个注解将配置的参数进行读取并使用。

1.在类上使用@Component,是EnvironmentUtil会被自动实例化成一个Bean,并且通过DI注入到其他的Bean中。会在项目启动时加载该类。

2.在定义的私有变量tmpName等参数上通过@Value(“${}”)将配置文件中的参数加载到变量中。

3.在set方法上通过@PostConstruct注解,在对象被初始化之后,通过反射机制自动调用该方法。通过该方法将加载的参数赋值给静态变量。

五、使用 package com.example.udpDemo.controller; import com.example.udpDemo.common.utils.EnvironmentUtil; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @author wangdachuan * @version 1.0 * @date 2023/5/5 22:37 **/ @RestController @RequestMapping("/env") public class EnvironmentController { /** * 获取配置文件中的参数 * * @return {@link String} */ @GetMapping("/getAppKey") public String getAppKey(){ return EnvironmentUtil.appKey; } }

通过直接调用EnvironmentUtil的静态变量,我们就可以获取到配置文件中的参数。

六、源码地址:

git地址: https://gitee.com/wyc_01/netty-udp-demo.git

包路径: com/example/udpDemo/common/utils/EnvironmentUtil.java

六、总结

在本文中,我们使用了@Component、@Value和@PostConstruct三个注解,将配置参数加载到静态变量中。虽然这种方法很方便,但我们也可以通过其他方式来实现配置参数的加载。欢迎大家留言讨论。

希望大家多多关注+点赞+收藏 🙏🙏,你们的鼓励是我不断前进的动力💪💪!!!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3