文章目录
- 创建Spring
- 将对象储存到Spring
- 从Spring中读取对象
-
- 获取上下文对象
- 获取业务对象
- 关于ApplicationContext和BeanFactory的联系与区别
创建Spring 打开idea,创建一个maven文件,然后点击next,finsh.
文章图片
然后File,打开设置Settings,搜索maven,勾中右下角的两个Override,然后检查对应目录下是否有settings.xml文件,如果有,检查是否为国内源,如果没有,将下面的xml复制过去。
文章图片
xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
>
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
在新项目的pom.xml文件中,引入下列依赖:spring的核心jar包
org.springframework
spring-context
5.2.3.RELEASE
org.springframework
spring-beans
5.2.3.RELEASE
如下:
文章图片
在resources文件中,创建一个新的file,后缀名为xml
文章图片
然后在其中写入基础的xml语句:
这样spring文件的创建就完成了。
可以查看左下角是否有引入的jar包,如果有,那么就算创建完成
文章图片
将对象储存到Spring 这里没有具体的业务代码,我们只是为了熟悉流程,所以创建一个测试类App,然后创建UserBean作为我们放入Spring的对象,里面可以写一些属性和方法。
文章图片
在spring-config文件中,将对象存入Spring中:
//bean表示符 后面读取对象时会用到,class中是保存到spring中的对象。
//如果想要放入多个对象,就创建多个bean标签,beans即bean对象列表
从Spring中读取对象 先获取上下文对象,然后通过上下文对象获取到业务对象。
获取上下文对象 方式一:ApplicationContext
ApplicationContext context=new ClassPathXmlApplicationContext("spring-config.xml");
这里的
ClassPathXmlApplicationContext
是ApplicationContext
的子类,拥有ApplicationContext的所有功能,可以通过xml配置来获取所有的Bean容器.方式二:BeanFactory
BeanFactory beanFactory =new XmlBeanFactory(new ClassPathResource("spring-config.xml"));
BeanFactory beanFACTory=new ClassPathXmlApplicationContext("spring-config.xml");
获取业务对象 方式一:通过bean对象的id获取
context.getBean("user")
//这里的user是与spring-congfig.xml中的bean的id是对应的。
用UserBean接受,需要强制转换。
UserBean userBean=(UserBean) context.getBean("user");
方式二:通过类型获取
context.getBean("UserBean.class")
通过类型来获取业务对象:
优点:可以避免类型转换
缺点:当有多个bean对象是同一类型时,会报错。
文章图片
方式三:通过id+类型获取
context.getBean("users",UserBean.class)
UserBean userBean1= context.getBean("users",UserBean.class);
第三种方式无需类型转换,而且在多个bean对象是同一类型的时候也不会报错。
关于ApplicationContext和BeanFactory的联系与区别
- 二者来自不同的包
BeanFactory来自Spring.beans.jar包,而ApplicationContext来自于spring.context.jar包下。
- BeanFactory和ApplicationContext都是Spring下的顶级接口,ApplicationContext是BeanFactory 的子类,BeanFactory提供了基础的访问容器的能力,而ApplicationContext不仅拥有BeanFactory的功能,还有支持很多的特性,如对国际化的支持,支持资源的访问,支持事件的传播…
- 从执行性能角度考虑,ApplicationContext是一次性加载并初始化所有的Bean,启动过程较慢,但后续执行较快,而BeanFactory是需要哪个类就加载哪个类,因此更加轻量,启动的更快,但后续执行可能会慢一些。
推荐阅读
- Spring|【Spring】Spring 更简单的读取和存储对象
- springmvc|SpringMVC注解版 --PK-- xml版入门案例
- 大数据课设&毕设|大数据接私活200元,做个简易的HDFS浏览器(一)
- 如何向Spring IOC 容器 动态注册bean
- #|Python基础——魔法方法与异常处理
- #|Python基础——类和对象与魔法方法
- 安装教程|Linux-安装Redis(详细教程)
- 基于Web的酒店客房管理系统的设计与实现
- spring|Spring Cloud构建分布式微服务架构 - 企业分布式微服务云架构构建