7.12.2 Instantiating the Spring container using AnnotationConfigApplicationContext
AnnotationConfigApplicationContext
当@Configuration类被提供作为输入时,这个@Configuration类自己注册为bean,所有声明的@Bean方法也会注册为bean
当@Commponent类被提供作为输入时,他们自己会被注册为bean,且假定他们依赖也会自动注入
Simple construction
ApplicationContext ctx = new AnnotationConfigApplicationContext(AppConfig.class);
ctx.getBean(...);
像上面提到的那样,AnnotationConfigApplicationContext也可以与标记了@Commponent的组件一起工作
ApplicationContext ctx =
new AnnotationConfigApplicationContext(MyServiceImpl.class, Dependency1.class, Dependency2.class);
Build the container programmatically using register(Class<?> ...)
public static void main(String[] args){
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
ctx.register(AppConfig.class, OtherConfig.class);
ctx.refresh();
}
Enabling component scanning with scan(String...)
public static void main(String[] args){
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
ctx.scan("com.acme");
ctx.refresh();
}