首页 > 解决方案 > 如何将属性文件中的属性注入 Spring 中的非托管类?

问题描述

我想将属性设置为不受 Spring 管理的类。实际情况如下:我有一个正则表达式,我想将其外部化到属性文件中。到目前为止,我尝试创建一个CommandLineRunner, 并从属性文件中读取并将正则表达式设置为我想要的任何字段。但我想知道是否有一种开箱即用的方式来做到这一点。

标签: javaspringspring-bootproperties-file

解决方案


您可以执行以下操作之一:

  1. 使该类成为“普通”Java 类,其中正则表达式由使用它的 Spring 托管类通过构造函数或方法参数传入。
  2. 给类一个静态字段“正则表达式”(可能具有默认值),该字段由 Spring bean 通过启动时的设置器设置(@PostConstruct)。
  3. 为类提供一个静态字段“正则表达式”(可能具有默认值),该字段使用static从属性文件中读取的类中的块进行设置(如果它在类路径上可用!)。
  4. 使类成为在 Spring 启动时初始化的“普通”单例(可能具有默认值)(https://www.baeldung.com/running-setup-logic-on-startup-in-spring

推荐阅读