2015-06-27 4 views
0

я в настоящее время используют следующие «шаблон» на всех моих рессоры/конфигурации классов/услуг:в Spring Autowired и InitializingBean

@Component 
final class SomeComponent implements InitializingBean { 
    private SomeBean someBean; 

    @Autowired 
    public SomeComponent(SomeBean someBean) { 
    this.someBean = someBean; 
    } 

    @Override 
    public void afterPropertiesSet() throws Exception { 
    Assert.state(someBean != null, "SomeBean should not be null."); 
    } 

    public void someMethod() { 
    someBean.doSomething(); 
    } 
} 

Должен ли я быть действительно реализующий такие вещи, или если я просто добавить до инициализации время, делая бессмысленные утверждения? Имеет ли Весна какие-либо гарантии относительно недействительности инъецируемых бобов?

ответ

0

В документации сказано:

По умолчанию, когда не удается автоматического связывания нулевых кандидатов бобы доступны; поведение по умолчанию - обработать аннотированные методы, конструкторы и поля как указание необходимых зависимостей.

Так что да, вы делаете бессмысленные утверждения. BTW, вы можете сделать эти утверждения в конструкторе напрямую или, по крайней мере, в методе @ PostConstruct-annotated, вместо того, чтобы переопределять InitializingBean.