一.ClassPathXmlApplicationContext方式
从类路径下查找spring配置文件
@Test
public void testGetBean01(){
//通过实例化ClassPathXmlApplicationContext对象完成加载spring配置文件
//这种方式在加载配置文件时就会把bean标签对应的类实例化,加载到内存中
ApplicationContext app = new ClassPathXmlApplication("applicationContext.xml");
//调用getBean方法,从容器中获取相应的bean
someService someService = app.getBean("someService",SomeService.class);
}
二.FileSystemApplicationContext方式
从本地文件系统中查找加载spring配置文件
@Test
public void testGetBean02(){
//通过实例化FileSystemApplicationContext对象完成加载spring配置文件
//这种方式在加载配置文件时就会把bean标签对应的类实例化,加载到内存中
ApplicationContext app = new ClassPathXmlApplication("applicationContext.xml");
//调用getBean方法,从容器中获取相应的bean
someService someService = app.getBean("someService",SomeService.class);
}
三.XmlBeanFactory方式
这种方式只是加载配置文件,只有真正调用getBean()方法的时候,才会去实例化相应的对象,和前两者有些不同
@Test
public void testGetBean03(){
XmlBeanFactory xbf = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));
SomeService someService = (SomeService) xbf.getBean("someServiceImpl");
}
总结
1.前两种方式
优点:在容器初始化的时候就会将所有对象创建完毕,获取对象的效率更高
缺点:占用内存
2.XmlBeanFactory方式
优点:节省内存
缺点:获取对象的效率相对来说会低
网友评论