@Inject 无参数 public 方法

@Inject on no-args public method

在查看一些代码时,我注意到一个 POJO(没有作用域 -> @Dependant)被注入 (@Inject) 到另一个 bean 中并且确实注入了一个 bean(一个字段)。 但它在无参数 public 方法上也有一个 @Inject 注释,该方法执行初始化操作。我认为注入点只发生在字段、构造函数和 setter

public class MyImpl implements MyInterface {

  @Inject
  private ParamDao paramDao;

  private Map<String,List<MyRateDto>> params;


  @Inject
  public void loadRates() {
    params = paramDao....;
  }
...
}

对我来说,这个方法 (loadRates) 应该被注释为 @PostConstruct。但我想知道在这种情况下会发生什么?

我想这个方法只是在 bean 创建和字段注入之后被调用...但是我没有在规范或其他地方读到任何关于它的内容。 这是预期的行为吗?

环境:Java 8/JavaEE 7 以 JBoss EAP 7 为目标。

谢谢

感谢@Andreas,我被引导到了正确的方向。

查看 @Inject 的 Javadoc:“首先注入构造函数,然后是字段,然后是方法。superclasses 中的字段和方法在那些之前注入在 subclasses 中。未指定字段之间和同一 class 中的方法之间的注入顺序。--- 可注入方法 [...] 接受零个或多个依赖项作为参数。"

因此,没有对零参数的明确描述。但只是 @Inject 方法以任意顺序调用,并解析参数。
没有争论 = 没有什么可以解决的。