我已经看到,当我把@Required放在College.java中时,我没有得到异常,代码运行得很好。这不是预期的行为。请帮帮我。
@Component
public class College {
public String s;
@Required
public void setS(String s) {
this.s = s;
}
@Configuration
public class ApplicationConfig {
@Bean
public College collegeBean()
{
return new College();
}
@Bean
public Principal principalBean()
{
return new Principal();
}
}Main方法:
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfig.class);
System.out.println("file loaded");
College coll = context.getBean("collegeBean",College.class);
System.out.println(coll.toString());
}发布于 2020-02-14 02:35:48
详细的here说明了@Required注释不起作用的原因
要使您的应用程序工作,您需要用@ComponentScan注释@Configuration类。如果要自动检测的bean不在@ComponentScan的默认作用域中,则需要相应地使用属性。
@Configuration
@ComponentScan
public class ApplicationConfig {..}备注
College类已经使用@Component进行了注释,@ComponentScan将检测该bean。您不需要ApplicationConfigString bean中的方法collegeBean()必须可用来支持依赖项。您可以在ApplicationConfig中为同一对象声明一个bean。希望这能有所帮助。
https://stackoverflow.com/questions/60212837
复制相似问题