¿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?

Respuestas a la pregunta(2)

Su respuesta a la pregunta