0
点赞
收藏
分享

微信扫一扫

认识Spring(1)

点亮自己的那盏灯 2023-07-24 阅读 34

在这里插入图片描述

hi,大家好,今天继续为大家带来Spring的相关内容

文章目录

🧁1.理解Spring和IOC

上一期的学习我们知道了什么是Spring,是包含了众多工具方法的IOC容器,作为一个容器,要具备的容器的功能是:

1.将对象存储到容器(Spring)中
2.把对象从容器中取出来

Spring最核心的功能就是将对象存入到Spring中,再从Spring中获取对象的过程
Bean定义:
在Spring中,我们把对象叫做Bean,Bean就是Java中的普通对象 Spring(ioc容器)管理的资源就是对象,对象就是Bean

将对象存放到容器中的好处:将对象存储在 IoC 容器相当于将随用随取,用完放入仓库里面,效率很高.⽽ new 对象的⽅式相当于,每次需要⼯具了,才现做,⽤完就扔掉了也不会保存,下次再⽤的时候还得重新做,效率很低.

Spring 是⼀个 IoC 容器,对象的创建和销毁的权利都交给 Spring 来管理,本身⼜具备了存储对象和获取对象的能⼒.

🧁2.DI和DF

🍸2.1什么是DI

DI ,全称Dependency Injection.意思是依赖注入

实现方式:在Spring中,依赖注入通过注解或 XML 配置文件来实现

简单解释:依赖注入是指在程序运行期间,动态的将依赖对象获取到的过程,也可以说IoC 容器在运⾏期间,动态地将某种依赖关系注⼊到对象之中.
举个例子:A a=new B().创建a 对象需要依赖B ,那么new的这个过程,就直接去容器里面取

那么和之前学的IOC有什么区别和联系?

🍸2.2什么是DF

DF Dependency Found 依赖查找

简单解释:给这个对象起一个名字,根据这个名字在容器里查找,找到之后,将该变量赋值给一个新定义的对象,Spring对象的创建就用到了依赖查找,等一下说
实现方式:依赖查找通过 ApplicationContext 接口的 getBean() 方法来实现

🍸2.3DI和DF的区别

依赖注入是将依赖关系委托给容器,由容器来管理对象之间的依赖关系而依赖查找是由对象自己来查找它所依赖的对象,容器只负责管理对象的生命周期

🧁3 Spring创建和使用

🍸3.1创建Spring项目

🍡3.1.1创建一个maven项目

在这里插入图片描述

🍡3.1.2添加Spring框架支持

在这里插入图片描述

<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>

🍡3.1.3添加启动类

在这里插入图片描述
在这里插入图片描述

🧁4.创建Bean对象

🍸4.1创建Bean

bean就是一个普通对象
在这里插入图片描述

🍸4.2将Bean注册到容器

蓝色的Java放的是Java源代码,resources放的是配置文件,绿色的放的是测试代码
在创建好的项⽬中添加 Spring 配置⽂件 spring-config.xml,将此⽂件放到 resources 的根⽬录下

<?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">
    <content:component-scan base-package="com.bit.service"></content:component-scan>
</beans>

在这里插入图片描述

再将 Student 对象注册到 Spring 中就可以,具体操作是在 中添加如下配置

<bean id="student" class="com.spring.demo.Student"></bean>

id对应的是将对象存储到IOC容器的名字,class对应的是存储到IOC容器的对象的完整路径(包名+类名)

🧁5.获取Bean并使用Bean对象

🍸5.1创建Spring上下文

1.Spring 上下⽂对象可使⽤ ApplicationContext

//得到bean对象
        ApplicationContext context=new ClassPathXmlApplicationContext("spring-config.xml");

在这里插入图片描述
还可以使⽤ BeanFactory 来创建 Spring 的上下⽂

BeanFactory beanFactory=new XmlBeanFactory(new
                ClassPathResource("spring-config.xml"));

在这里插入图片描述
ApplicationContext 和BeanFactory有什么区别?
相同点:都是容器管理对象,都可以获取bean对象
区别:
1.ApplicationContext属于BeanFactory的子类,ApplicationContext拥有更多功能(国际化⽀持、资源访问⽀持、以及事件传播等⽅⾯的⽀持)
2.加载bean机制不同:BeanFactory是懒加载
按需加载,

在这里插入图片描述
Application是一次性全部加载完
在这里插入图片描述

🍸5.2获取指定的Bean对象

🐷1.根据名称获取bean
在这里插入图片描述
🐷2.根据类型获取bean对象

 Student studentSrvice=context.getBean(Student.class);

在这里插入图片描述

问题:当同一个类型注入到Spring多个的情况下,那么这个就会报错,编译器不知道获取的对象是哪一个
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
🐷3.根据名称+类型来获取

 Student studentSrvice=beanFactory.getBean("student1",Student.class);

在这里插入图片描述

🍸5.3使用Bean

//使用bean对象
        studentSrvice.sayHi();

在这里插入图片描述

🧁6.总结

Spring项目的创建和使用的大致流程

今天的讲解就到这里了,我们下期再见咯~
在这里插入图片描述

举报

相关推荐

0 条评论