如何将 属性 从属性文件注入到 Spring 中的非托管 class?

How to inject a property from properties file to a non-managed class in Spring?

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

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

  1. 使class成为"normal"Javaclass,其中正则表达式由Spring管理的[=30]通过构造函数或方法参数传入=] 谁在使用它。
  2. 给class一个静态字段"regex"(可能有默认值),它在启动时通过setter由Spring bean设置(@PostConstruct).
  3. 给class一个静态字段"regex"(可能有一个默认值),它是使用class从属性文件中读取的static块设置的(如果它在 class 路径上可用!)。
  4. 使 class 成为在 Spring 启动时初始化的 "normal" 单例(可能具有默认值)