如何在Spring Boot中读取构造函数内部的application.properties值?

2019年10月7日 28点热度 0条评论

我知道构造函数在自动连接变量之前正在调用。但是,不幸的是,我想读取构造函数内部的application.properties值吗?

@Component
public class DESedeEncryption {
  private static final String key = "TEST_KEY";
  public DESedeEncryption() {
    system.out.println(key);
 }
}

DESedeEncryption encrypted = new DESedeEncryption();

对于上面的类,该对象是通过在我的项目中使用总共108个位置的新运算符创建的。现在,我想从application.properties中读取该键值。但是,我需要使用@Autowired注解更改所有108个位置。但是,在某些情况下,使用“新”运算符编写的对象创建会放在实体类文件中。因此,我无法自动将对象连接到实体类中。

有人,请帮助我解决此问题。

解决方案如下:

您可以在带有@Value批注的构造函数中声明一个变量,在该变量中调用application.properties变量。
示例类:

  public DESedeEncryption(@Value("${key}") final String key) {
    system.out.println(key);
 }