文章目录
- 前言
- 一、创建Spring项目
- 二、向Spring容器中存储 Bean 对象
- 三、从Spring容器中读取 Bean 对象
- 得到Spring上下文对象
- 得到 Bean 对象
- 总结
前言
本人是一个普通程序猿!分享一点自己的见解,如果有错误的地方欢迎各位大佬莅临指导,如果你也对编程感兴趣的话,互关一下,以后互相学习,共同进步。这篇文章能够帮助到你的话,劳请大家点赞转发支持一下!
一、创建Spring项目
创建Spring也很简单,分为三步。
1️⃣ 创建一个普通的Maven项目。
2️⃣ 添加Spring框架支持 :在项目的 pom.xml 中添加 Spring 框架的支持(添加Spring 框架支持的代码在下面!)。
注意:代码中的 Spring的版本号要与JDK的版本号对应 (JDK1.8就是JDK8,具体请看下面官方说明与大佬博客)。
JDK版本号对应的Spring版本号
一文彻底搞懂令人疑惑的Java和JDK的版本命名!
<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.3.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>5.2.3.RELEASE</version></dependency>
</dependencies>
第一次引入Spring框架支持的时候会下载jar包,如果下载缓慢或下载失败,可以配置国内源,具体如何配置还请大家问下度娘。
3️⃣ 添加启动类
最后在创建好的项目 java ⽂件夹下创建⼀个启动类,包含 main 方法即可。
在 Java 语言中对象也叫做 Bean ,所以再遇到对象就以 Bean 著称。
二、向Spring容器中存储 Bean 对象
也是分为简简单单的三步。
1️⃣要存储Bean,得先有Bean才行啊,现在我们创建两个Bean,Student与Teacher。
要注意Teacher是在test包下, Student是在demo包下。
2️⃣创建配置文件
在 resources 目录下 ,创建 Spring 配置文件:xxx.xml(名称没有限制, 一定要是xml格式 )
配置文件的代码放在下面了!!
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:content="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
</beans>
3️⃣将Bean注册到Spring容器
在配置文件中注册。
注意:是放在beans标签下。
<bean id="" class=""></bean>
上述操作就将Student与Teacher对象注册到了Spring容器中。
三、从Spring容器中读取 Bean 对象
分为简简单单的两步。
1️⃣ 得到 Spring 上下文对象。
2️⃣ 通过 Spring 上下文,获取某⼀个指定的 Bean 对象 。
以下操作均在启动类(App)中完成。
得到Spring上下文对象
1️⃣得到 Spring 上下文对象(相当于得到容器这个对象),因为对象都交给 Spring 管理了,所以获取对象要从 Spring中获取,那么就得先得到 Spring 的上下文。共有两种方式获得Spring的上下文对象。
第一种
第二种
两种得到 Spring 上下文对象的方式的区别:
不同:
ApplicationContext 属于 BeanFactory 的子类,ApplicationContext 拥有更多功能 (国际化支持资源访问支持、以及事件传播等方面的支持…)。
BeanFactory启动非常快,启动后获取对象慢。
ApplicationContext启动慢,启动后获取对象非常快。
加载 Bean 机制不同:
BeanFactory 懒加载(懒汉),按需加载(使用一个Bean加载一个Bean)。ApplicationContext(饿汉) 一次性加载所有 Bean 对象。
相同:
都是容器管理对象,都可以获取 Bean 对象。
得到 Bean 对象
2️⃣通过 Spring 上下文,获取某⼀个指定的 Bean 对象。
有三种获取Bean对象的方式。
第一种:根据名字获取
只有根据名字获得Bean对象时,返回的是Object类型的对象,需要强转,下面两种方法都声明了类型不需要强转。
第二种:根据类型获取
但是这里有一个问题,当容器中多个同一类型的对象,会怎么样?
代码不变,程序抛出异常!当容器中存在两个相同类型的对象,使用类型获取该对象就会抛出异常 。
所以使用类型获取对象的方法,使用时要小心!!!
第三种:根据名字+类型获取
此时容器中仍然存在两个相同类型的对象,不过这里就没有任何问题了。
总结
以上就是今天要讲的内容,本文介绍了如何创建Spring以及对Spring的存储取出对象操作。
但是以上的存储取出对象操作,还要去配置文件里专门写代码去配置,然后还要通过上下文对象进行获取,这不也挺麻烦吗,还不如直接new好使呢。
下篇文章介绍通过注解实现更简单的Spring存储取出操作,敬请期待!
路漫漫不止修身,也养性。