

可以从maven仓库获取,也可以从这里获取
org.springframework spring-context 5.2.3.RELEASE org.springframework spring-beans 5.2.3.RELEASE


注意:在Spring容器中对象是用bean 表示
获取方法有两种:
【方式一】 **(建议使用)**使用ApplicationContext接口和ClassPathXmlApplicationContext类(ClassPathXmlApplicationContext类是ApplicationContext接口的子类)
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Spring配置文件的名称")
【方式二】使用BeanFactory接口和XmlBeanFactory类(XmlBeanFactory类是BeanFactory接口的子类)和ClassPathResource类
BeanFactory applicationContext = new XmlBeanFactory(new ClassPathResource("spring-config.xml"))

相同点:ApplicationContext接口和BeanFactory接口都是可以获取到Spring容器的上下文,并且完成获取Spring容器里的对象,所表示的效果差不多
不同点:
在继承关系和功能方面:ApplicationContext接口是BeanFactory接口的子类,ApplicationContext接口继承了BeanFactory接口的所有功能和能力。BeanFactory接口只具备最基本的访问Bean的能力,而ApplicationContext接口除了这个能力外,还有了对国际化⽀持、资源访问⽀持、以及事件传播等⽅⾯的⽀持。ApplicationContext接口的功能更加强大。
**在性能和加载方式方面:**BeanFactory是按需求加载bean(懒汉式加载),而ApplicationContext则是一次性加载全部的bean(饿汉式加载)
Spring上下文对象的getBean()方法有很多重载方法,这里介绍三种常用的:
【第一种通过bean的id名称来获取bean】
User user = (User) applicationContext.getBean("user");
注意:参数里的字符串内容要用spring-config.xml配置文件的bean的id名称一样
【第二种通过类型来获取bean】
User user = applicationContext.getBean(User.class)
【第三种通过bean的id名称和类的类型来获取bean】 (强烈推荐使用)
User user = applicationContext.getBean("user",User.class)

上一篇:SpringCloud 远程调用
下一篇:_Linux 动态库