文章目录
Spring对象的存储
创建Bean对象
Bean对象其实就是一个普通的Java对象。我们按照创建Java对象的方式来创建一个即可:
public class User {
public String sayHi(){
return "hi";
}
}
将Bean对象存储到spring中
添加配置文件
存储Bean对象
Spring对象的读取
得到Spring上下文对象
因为在 Spring 中,我们把对象都交给 Spring 处理了,所以要从 Spring 中获取对象时就需要得到 Spring 上下文对象来获取,一共有两种方式:
//方式一:ApplicationContext ""里的内容要和我们配置的xml的名称对应
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
//方式二:BeanFactory ""里的内容也要和我们配置的xml的名称对应
BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));
ApplicationContext vs BeanFactory:
- 从继承关系和功能方面来说,Spring 容器有两个顶级的接口:ApplicationContext 和 BeanFactory。其中 BeanFactory 提供了基础的访问容器的能力;而 ApplicationContext 属于BeanFactory
的子类,它除了继承了 BeanFactory
的所有功能外还拥有一些独有的特性,比如:添加了对国际化支持、资源访问支持及事件传播等方面的支持。- 从性能方面来说,Application 是一次性加载并初始化所有的 Bean 对象,而 BeanFactory 是需要使用哪个才加载哪个
从Spring中取出Bean对象
获取 Bean 对象有三种方式,如下:
//从spring中取出Bean对象
//1. 通过Id来获取bean
User user = (User) context.getBean("user");
//2. 通过类类型来获取bean
User user = context.getBean(User.class);
//3. 通过id+类类型来获取bean
User user = context.getBean("user",User.class);
注:
- 根据 id 来获取 Bean 对象时,使用的 id 要和我们把 Bean 存储到配置文件中设置的 id 一样
- 根据类类型来获取 Bean 对象时,当 Spring 中有多个相同类型的对象时,就会获取失败
- 我们常用的方式是 id + 类类型 来获取 Bean 对象
使用Bean对象
我们获取到 Bean 对象后,对于 Bean 对象可以自由使用(想怎么使用怎么使用,不受限制)。