文章目录
创建Spring项目
新建项目
![在这里插入图片描述](https://img-blog.csdnimg.cn/0b9cca6f6ca3496e9a11f45d83588ec7.png
引入Spring依赖
放到pom.xml中
<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>
创建一个启动类
可以运行成功说明配置没有问题了。
将Bean对象存入到Spring中
1.添加配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>
是红的可以刷新一下,maven那。
2.创建一个Bean对象
所谓的Bean对象,其实就是java中的一个普通类
我们创建的bean对象都要存在java目录下
3.将Bean注入到Spring中
Spring存入对象也是通过key-value来存入的。
关于class中类名,我们要写的具体一点,在com包下的bean包中的UserBeam类。
将Bean对象从Spring中取出来
使用ApplicationContext
1.得到Spring上下文对象
2.获取Bean对象
getBean的参数就是所写的id
3使用Bean对象
使用BeanFactory
步骤和使用ApplicationContext类似~
ApplicationContext和BeanFactory异同
相同点
- 都提供了getBean方法
不同点
- ApplicationContext是BeanFactory的子类,因此ApplicationContext肯定是比BeanFactory的方法多的。因为在java语言中,子类继承父类,将会拥有父类的一切(子承父业),而自身携带的方法,父类是不能访问的。
- 从性能方面来说,二者是不一样的。ApplicationContext是一次性加载并初始化所有的bean对象,而BeanFactory是需要哪个才去加载。这两种方法各有优缺点,但都有适合的场景会用到。
测试
对于ApplicationContext
对于BeanFactory
getBean方法的更多用法
1.使用id获取bean对象
就是我们上面使用的
2.使用bean的类型获取Bean对象
缺陷
:
当在配置文件中注入对象多次时(这种行为是允许的,此时Spring就有两个UserBean对象),就会报错
3.属于一和二的结合
它是官方推荐使用的写法,因为它最稳,但我们平时写的时候,完全可以用方法一或二。