当前位置: 首页 > news >正文

配置项取值给静态类用

在 Java 中,如果要从 application.yml 文件中取值并供静态类使用,可以考虑以下几种方法:

一、使用 Spring 的 Environment 类

1. 首先确保你的项目是一个 Spring 项目,并且配置文件被正确加载。

2. 在需要获取配置值的类中注入 Environment 对象:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;

public class SomeStaticClass {

    private static Environment environment;

    @Autowired
    public void setEnvironment(Environment env) {
        SomeStaticClass.environment = env;
    }

    public static String getSomeValueFromYaml() {
        return environment.getProperty("some.key.in.your.yml");
    }
}
二、使用 @Value 注解结合静态变量和静态初始化块
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class ConfigValueHolder {

    @Value("${some.key.in.your.yml}")
    private static String someValue;

    static {
        // 触发 Spring 的依赖注入以初始化静态变量
        try {
            ConfigValueHolder configValueHolder = new ConfigValueHolder();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static String getSomeValue() {
        return someValue;
    }
}
然后在静态类中可以通过调用 ConfigValueHolder.getSomeValue() 来获取配置值。

需要注意的是,使用静态方式获取配置值可能会带来一些局限性,比如在测试环境中可能不太容易进行模拟和控制。在实际应用中,可以根据具体情况选择合适的方式来获取配置值。

http://www.lryc.cn/news/449230.html

相关文章:

  • 【vs code(cursor) ssh连不上服务器】但是 Terminal 可以连上,问题解决 ✅
  • Go基础学习06-Golang标准库container/list(双向链表)深入讲解;延迟初始化技术;Element;List;Ring
  • 多层时间轮原理以及使用
  • 鸿蒙HarmonyOS开发生态
  • vue中使用jsencrypt加密
  • SpirngBoot核心思想之一AOP
  • 足球预测推荐软件:百万数据阐述百年足球历史-大数据模型量化球员成就值
  • AD中如何批量修改丝印的大小,节省layout时间
  • Ps:堆栈
  • 獨立IP和共用IP有什麼區別?
  • 枢纽云EKP数字门户模板上线!轻松复刻胖东来官网,实现数字化逆袭
  • 从自动化到智能化:AI如何推动业务流程自动化
  • Selenium与数据库结合:数据爬取与存储的技术实践
  • 在 Docker 中进入 Redis 容器后,可以通过以下方法查看 Redis 版本:
  • Windows 10 系统安装 FFmpeg 查看、转换、编辑音频文件
  • 反调试防护-API
  • 【视频讲解】非参数重采样bootstrap逻辑回归Logistic应用及模型差异Python实现
  • Linux系统中命令wc
  • redis集群部署
  • VUE条件树查询
  • vue框架学习 -- 日历控件 FullCalendar 使用总结
  • [数据集][目标检测]猪数据集VOC-2856张
  • 工业制造场景中的设备管理深度解析
  • OpenCV图像文件读写(3)统计多页图像文件中的页面数量函数imcount()的使用
  • 【数据治理-构建数据标准体系】
  • AI新方向:OpenAI o1是一个更擅长思考的模型系列:高级推理+逻辑严密+更广泛的知识,用于解决复杂的逻辑问题,慢思考
  • Laravel部署后,CPU 使用率过高
  • Rust调用tree-sitter支持自定义语言解析
  • 如何解决跨域请求中的 CORS 错误
  • 计算机知识科普问答--20(96-100)