Dependency injection 什么时候@“地产项目”;字段已注入,是否要检查注入值

Dependency injection 什么时候@“地产项目”;字段已注入,是否要检查注入值,dependency-injection,apache-camel,blueprint-osgi,Dependency Injection,Apache Camel,Blueprint Osgi,我在一些类中使用了@PropertyInject。 这些类是通过blueprint(使用maven blueprint插件)注入的。我想检查用@PropertyInject注入字段的值 问题是在PostConstruct(由maven blueprint plugin->init方法支持)中,所有字段仍然为空。 但是如果我使用注入这些文件的对象(驼峰端点),那么所有字段都设置正确 所以在“后构造”和实例的使用之间,所有字段都被注入。有没有一种方法可以在注入后直接挂接以检查值(!=null)?将@

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

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


所以在“后构造”和实例的使用之间,所有字段都被注入。有没有一种方法可以在注入后直接挂接以检查值(!=null)?

将@PropertyObject放在setter上,并检查setter中设置的值

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

基本上,您希望确保您没有注入任何东西,而不是空的或空的?我不确定您是否可以通过blueprint中设置的属性来实现这一点。我认为您需要自己检查这个属性,如果属性应该有值,则抛出一个异常。我要检查它!但是什么时候?我想签入注入这些字段的对象。然后将此对象注入另一个对象。在对其进行任何操作之前,您不能使用一些防御编程来检查字段是否为空吗?我想使用防御编程!但是代码在哪里呢?我想在字段被注入后立即检查,但如何检查?(正如我所说的,施工人员和施工后都要提前)首先,叫喊不会让你有任何进展。正如我在评论中提到的,我非常怀疑您是否可以在注入后直接验证变量,而是在您想要使用变量或在引用变量时需要验证变量的内容。如果这不适合你的要求,在Camel-Nabble论坛上发布问题,看看你是否能得到更好的答案。