¿Cómo funciona la anotación @Required con JavaConfig?
Soy bastante nuevo en Spring Framework y tengo problemas para entender el@Required
anotación en combinación con una aplicación configurada de Java.
Aquí hay un ejemplo.
Archivo de configuración
@Configuration
public class AppConfig {
@Bean
public Movie movieA() {
return new Movie();
}
@Bean
public MovieHolder holder() {
return new MovieHolder();
}
}
MovieHolder.java
public class MovieHolder {
private Movie movie;
public Movie getMovie() {
return movie;
}
@Required
public void setMovie(Movie movie) {
this.movie = movie;
}
}
Inicialización de contexto
ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
MovieHolder holder = (MovieHolder) context.getBean("holder");
System.out.println("movie: " + holder.getMovie());
Por lo que entendí la documentación de la@Required
anotación, debería haber una excepción, ya que la película no se establece directamente o por autowiring. En cambio es la salidamovie: null
.
¿Qué estoy haciendo mal? ¿O no es este el uso correcto de la@Required
¿anotación?