Я понял, что было несколько ответов, пытавшихся решить проблему.Но с недавно представлен @Configuration
, который широко используется в Spring Boot .Все немного изменилось.
Если вы используете аннотацию @Bean
в @Configuration
аннотированном классе, например:
@Configuration
class FooClass {
@Bean
public Bar bar() {
return new Bar();
}
}
Если вы хотите использовать автоматически вызываемый метод в бинеэкземпляр во время инициализации, у вас есть две опции ниже:
Option1:
@Configuration
class FooClass {
@Bean(initMethod="init")
public Bar bar() {
return new Bar();
}
}
Option2:
@Configuration
class FooClass {
@Bean
public Bar bar() {
Bar bar = new Bar();
bar.init();
return bar;
}
}
НО , как объясняется в@Bean
Java Doc здесь:
/**
* The optional name of a method to call on the bean instance during initialization.
* Not commonly used, given that the method may be called programmatically directly
* within the body of a Bean-annotated method.
* The default value is {@code ""}, indicating no init method to be called.
*/
Второй вариант считается лучшим ответом.Смотрите ссылку здесь