2016-12-07 3 views
0

Я использую @PropertyInject в некоторых из моих классов. Эти классы вводятся с помощью плана (с использованием плагина maven blueprint). Я хочу проверить значения, которые вводятся в поля с @PropertyInject.Когда вводятся поля «@PropertyInject», вы хотите проверить введенные значения

Проблема заключается в том, что в пределах PostConstruct (поддерживается методом maven-blueprint-plugin -> init) все поля по-прежнему равны нулю. Но если я использую объект (конечную точку верблюда), который вводит эти поля, все поля устанавливаются правильно.

Таким образом, между «PostConstruct» и использованием экземпляра все поля вводятся. Есть ли способ, которым я могу подключиться непосредственно после инъекции, чтобы проверить значения (! = Null)?

+0

В принципе, вы хотите, чтобы вы не вводили что-то, а не пустым или нулевым? Я не уверен, что вы можете сделать это через свойства, установленные в проекте. Я думаю, вам нужно проверить это самостоятельно и выбросить исключение, если свойство должно иметь значение. –

+0

Я хочу проверить это! но когда? Я хочу проверить объект, который вводит эти поля. Затем этот объект вводится в другой объект. – dermoritz

+0

Не можете ли вы просто использовать какое-то защитное программирование, чтобы проверить, пустое поле или нет, прежде чем что-либо делать с ним? –

ответ

2

Поместите объект @PropertyInject на сеттер и проверьте значение, заданное в установщике.

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