【深入Spring】从spring容器中获取Bean的三种方式

一.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方式
优点:节省内存
缺点:获取对象的效率相对来说会低

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值