注入“@PropertyInject”字段时,想要检查注入的值

时间:2016-12-07 13:03:32

标签: dependency-injection apache-camel blueprint-osgi

我在某些课程中使用@PropertyInject。 这些类是通过蓝图注入的(使用maven blueprint插件)。我想检查使用@PropertyInject注入字段的值。

问题是在PostConstruct内(由maven-blueprint-plugin - > init方法支持),所有字段仍然为空。 但是如果我使用注入那些文件的对象(一个骆驼端点),所有字段都设置正确。

因此,在“PostConstruct”和实例的使用之间,所有字段都会被注入。有没有办法可以在注射后直接挂钩来检查值(!= null)?

1 个答案:

答案 0 :(得分:2)

将@PropertyInject放在setter上并检查setter中设置的值。

@PropertyInject("prop")
public void setProp(String value) {
  if (value == null) {
    throw new IllegalArgumentException("prop cannot be null");
  }
  this.prop = value;
}