我对 Spring Framework 很陌生,在理解@Required
注释与 Java 配置的应用程序结合时遇到了问题。
这是一个例子。
配置文件
@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;
}
}
上下文初始化
ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
MovieHolder holder = (MovieHolder) context.getBean("holder");
System.out.println("movie: " + holder.getMovie());
据我了解@Required
注释的文档,应该出现异常,因为电影不是直接设置或通过自动装配设置的。取而代之的是输出movie: null
。
我究竟做错了什么?或者这不是@Required
注释的正确使用吗?