java—spring中注解的执行顺序

mitkmikd  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(577)

这个问题在这里已经有答案了

如何在类级变量中使用spring@value注解(3个答案)
spring@value(“${}”)通常为空(4个答案)
我的注解@value返回null,即使它被使用并调用到组件注解类中(2个答案)
spring boot- @Values 返回null(6个答案)
上个月关门了。
我试图从springboot中的属性文件加载一些属性,但也希望使用列表访问它们。我不确定班级成员的姓名缩写顺序。

  1. @Getter
  2. @Setter
  3. @ConfigurationProperties
  4. public class ConfigurationM{
  5. @Value("${propA}")
  6. private String propA;
  7. @Value("${propB}")
  8. private String propB;
  9. private List<String> list = Collections.unmodifiableList(propA, propB);
  10. }

@value annotation是否在初始化列表之前注入值?在使用注解时加载类时,如何确定求值顺序?

svgewumm

svgewumm1#

@value annotation是否在初始化列表之前注入值?
不幸的是,没有!“instance initializer”(类/对象体)在“constructor”之前执行,spring没有机会在那里注入任何东西。
在使用注解时加载类时,如何确定求值顺序?
-> https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans
你也可以驱逐 @PostConstruct 纯spel:

  1. // pure (built-in) SpEL:
  2. @Value("#{{'${propA}', '${propB}'}}")
  3. private List<String> list;
  4. // Java < 9
  5. @Value("#{ T(java.util.Arrays).asList('${propA}', '${propB}')}")
  6. private List<String> listJ8;
  7. // Java > 8
  8. @Value("#{ T(java.util.List).of('${propA}', '${propB}')}")
  9. private List<String> listJ9;
展开查看全部

相关问题