public void testIoc2() {ApplicationContext applicationContext = new AnnotationConfigApplicationContext( SpringConfig.class);Phone phone = applicationContext.getBean(Phone.class);System.out.println(phone.toString());}
或者
public void testIoc() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
Phone phone = applicationContext.getBean(Phone.class);
System.out.println(phone.toString());
}
一般我们通过
注解实现的启动类AnnotationConfigApplicationContext或者ClassPathXmlApplicationContext来启动,这是两种不同的方式来实现配置信息的加载。
XML实现的启动类ClassPathXmlApplicationContext
会使用AbstractRefreshableApplicationContext容器中的实现,该容器中实现xml配置文件定位,并通过BeanDefinition载入和解析xml配置文件。
注解的启动类AnnotationConfigApplicationContext
通过ConfigurationClassPostProcessor的后置处理器完成对bean的加载