Spring的创建和使用

目录

1.为什么要学框架?

2.SpringBoot & Servlet对比

1.完成项目的步骤

 2.发布

 3.框架的优点

3.Spring是什么?

4.Spring的创建和使用

5.创建Spring项目(用maven的方式)

6.存储Bean对象

总结:

1.添加spring配置文件spring-config.xml放在resource文件下

2.在spring中进行定义管理

3.获取Bean的方式

4.也可以通过Bean Factory的方式获取对象

7.Bean更简单的五大注解

1.在spring-config.xml中配置扫描路径

2.加上注解(五大注解)

3.注解对应的Bean的名称

4.五大注解之间的关系

 5.方法注解@Bean

 8.包下载不下来的解决方案

 9.对象装配

1.属性注入(不被官方推荐,但实际开发中使用最多)

 2.Setter方法注入

 3.构造方法注入

4.三种方法注入的优缺点

1.属性注入

2.Setter方法注入(Spring3.X推荐)

3.构造函数注入(Spring4.X推荐)

5.Autowired和Resource的区别


1.为什么要学框架?

框架更加易⽤、简单且⾼效

2.SpringBoot & Servlet对比

1.完成项目的步骤

Spring的创建和使用_第1张图片

 2.发布

 3.框架的优点

  • 1. 添加外部 jar 更容易,不易出错(版本问题⽆需关注);
  • 2. 调试项⽬更加⽅便,⽆需配置 Tomcat;
  • 3. 发布项⽬更加⽅便,⽆需配置 Tomcat;
  • 4. 添加路由更加⽅便,⽆需每个访问地址都添加⼀个类

3.Spring是什么?

简单来说,Spring是一个包含众多工具的IoC容器,里面存放的是对象

IoC就是Inversion of Control就是控制反转的意思,控制反转指的是控制权的反转,是对于依赖对象管理的控制权反转

IoC的优势就是,程序解耦

IoC是一个思想,实现的方式有很多

DI(依赖注入)就是其中一种实现

4.Spring的创建和使用

Spring是一个容器,所以最基本的两个功能就是存储对象和取出对象(Bean)

5.创建Spring项目(用maven的方式)

  • 1. 创建⼀个普通 Maven 项⽬。
  • 2. 添加 Spring 框架⽀持(spring-context、spring-beans)。
  • 3. 添加启动类。

6.存储Bean对象

总结:

1. 操作容器之前,先要有容器,所以先要得到容器。
2. 存对象
a. 创建 Bean(普通类)。
b. 将 Bean 注册(配置)到 spring-confing.xml 中。
3. 取对象
a. 得到 Spring 上下⽂,并读取到 Spring 的配置⽂件。
b. 获取某⼀个 Bean 对象。
c. 使⽤ Bean 对象。

1.添加spring配置文件spring-config.xml放在resource文件下

 

2.在spring中进行定义管理

Spring的创建和使用_第2张图片

Spring的创建和使用_第3张图片

3.获取Bean的方式

Spring的创建和使用_第4张图片

 通过第二种方式获取对象的优势就是不需要进行类型转换,但是缺点就是不能用在有多个对象的类中,因为不论取多少次对象,我们获取的都是同一个对象

4.也可以通过Bean Factory的方式获取对象

Spring的创建和使用_第5张图片 不推荐使用BeanFactory

7.Bean更简单的五大注解

1.在spring-config.xml中配置扫描路径

2.加上注解(五大注解)

Spring的创建和使用_第6张图片

3.注解对应的Bean的名称

  • 一般是类名首字母小写
  • 当类名前两位都是大写时,Bean的名称就是类名

4.五大注解之间的关系

Spring的创建和使用_第7张图片

通过源码可以发现,剩下四大注解都是Component注解的子类

Spring的创建和使用_第8张图片

 5.方法注解@Bean

1.@Bean需要搭配五大注解来使用

2. @Bean对应生产的bean名称是方法名

3.@Bean(可以写多个重命名)

4.@Bean的参数

首先根据方法的返回类型匹配,同一种类型有多个就根据方法的名称匹配

如果匹配出来是一个对象,就直接注入

5.spring-config.xml中配置的方式,如何传参

Spring的创建和使用_第9张图片

 8.包下载不下来的解决方案

Spring的创建和使用_第10张图片

 9.对象装配

1.属性注入(不被官方推荐,但实际开发中使用最多)

使用@Autowired

1.如果注入的类只有一个Bean,就是根据类型去查找对象,(那么可以随便取名字)

2.如果注入的类有多个对象,是根据方法名去查找对象的,(那么取的名字的方法名必须存在),否则会报错

 2.Setter方法注入

Spring的创建和使用_第11张图片

 3.构造方法注入

1.当只有一个构造方法时,不需要加注解

2.当有两个构造方法时,必须加上注解告诉Spring你需要调用哪个构造方法,并且只能给一个构造方法加上注解

Spring的创建和使用_第12张图片

4.三种方法注入的优缺点

1.属性注入

  • 优点:使用方便,简单
  • 缺点:只能用在IoC容器中,只有在使用的时候才会出现NPE,不能注入一个final修饰的属性

2.Setter方法注入(Spring3.X推荐)

  • 优点:可以在类实例化之后重新对对象进行注入
  • 缺点:不能注入一个final修饰的对象,setter方法可能会被多次调用,注入对象可能会被改变

3.构造函数注入(Spring4.X推荐)

  • 优点:可以注入final修饰的对象, 诸如的对象不会被改变
  • 依赖对象使用之前一定会被完全的初始化,因为依赖是在类的构造方法中注入的,而构造方法实在类加载阶段就执行的方法,通用性好
  • 缺点:注入多个对象时,代码很繁琐

Spring的创建和使用_第13张图片

5.Autowired和Resource的区别

1.@Autowired来源于Spring,而@Resource来源于JDK的注解

2.@Resource 支持更多的参数设置,例如name,就可以通过名称获取Bean

@Autowired同样可以搭配@Qualifire来设置名称

你可能感兴趣的:(spring,java,后端)