天天看点

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

尚硅谷-Spring5框架2020最新版教程(idea版)

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

Spring框架概述

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

Spring5入门案例

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

2、打开idea工具,创建普通Java工程

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

3、导入Spring5相关jar包

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

IOC

1.IOC(概念和原理)

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

IOC容器本质指的就是工厂

反射:通过得到类的字节码文件(.class),可以操作类中的所有内容

IOC达到的目的:

IOC进一步降低耦合,例如dao中的类路径发生了变化,不需要在servic类和工厂类中修改,只需要需改xml文件中的类路径属相

IOC解耦类相互依赖的过程:解析xml配置文件获取类的路径,利用反射从二进制(.class)文件获取类的信息,再通过neInstance和强转创建类对象

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

2.IOC(BeanFactory接口)

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

3.IOC操作Bean管理(概念)

IOC操作的的术语是Bean管理

依赖注入是Ioc的具体实现,属相注入的时候不再需要自己去new而是有spring创建好,直接去存放bean的容器中获取(依赖注入)

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

原始的java属相注入方式:set方法注入和构造方法注入

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

IOC操作Bean管理(基于xml方式)

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

IOC操作Bean管理(FactoryBean)

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

4.IOC操作Bean管理(bean作用域)

bean作用域的作用域是指:创建bean实例是单实例还是多实例

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

添加后置处理器后bean的生命周期会在初始化前后多两步

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

IOC 操作 Bean 管理(xml 自动装配)

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

IOC 操作 Bean 管理(基于注解方式)

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

创建对象注解

Spring 针对 Bean 管理中创建对象提供注解

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

5.基于注解方式实现属性注入

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

@Autowired 根据属性类型进行自动装配

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

@Qualifier:根据名称进行注入

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

@Resource:可以根据类型注入,可以根据名称注入

@Resource是java提供的,所有spring 更推荐使用@Autowired [email protected]

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

@Value:注入普通类型属性

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

6.完全注解开发

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

但是实际开发都是通过Springboot实现完全注解开发

AOP

AOP: 实现了在不改变类中原有代码的基础上,来增强类中的方法逻辑

AOP(概念)

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

AOP(底层原理)

AOP 底层使用动态代理实现。

代理: 为需要被增强类对象生产一个代理对象,通过这个代理对象添加需要曾加的功能。

AOP 底层使用动态代理

有两种情况动态代理:

  • 第一种 有接口情况,使用 JDK 动态代理
  • 第二种 没有接口情况,使用 CGLIB 动态代理

有接口情况,使用 JDK 动态代理
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

没有接口情况,使用 CGLIB 动态代理

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

AOP(JDK 动态代理)

Spring已经帮我实现动态代理的实现,我们只需通过配置或注解及可以直接使用。我们这里主要学习一下JDK 动态代理实现方式

1、使用 JDK 动态代理,使用 Proxy 类里面的方法创建代理对象

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

AOP中操作的术语(专业名词)

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

AOP 操作(准备工作)

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

AOP 切入点表达式

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

AOP 操作(AspectJ 注解)

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

配置不同类型的通知

SpringBoot2.x.x 对应的是Spring5

Spring5 AOP的执行顺序

程序执行正常顺序

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

程序运行抛出异常:

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

相同的切入点抽取

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

有多个增强类多同一个方法进行增强,设置增强类优先级

使用@Order(1)设置增强类执行的先后顺序 @Order(1)中的值越小优先级越高(0-1)

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

JdbcTemplate

1、什么是 JdbcTemplate

(1)Spring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作

Spring5 框架新功能

1、整个 Spring5 框架的代码基于 Java8,运行时兼容 JDK9,许多不建议使用的类和方法在代码库中删除

Spring 5.0 框架自带了通用的日志封装

Spring 5.0 框架自带了通用的日志封装但也可以这个和其他日志框架如Log4j2

Spring 5.0不在支持整合Log4j。

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

第二步 创建 log4j2.xml 配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > 
ALL -->
<!--Configuration 后面的 status 用于设置 log4j2 自身内部的信息输出,可以不设置,
当设置成 trace 时,可以看到 log4j2 内部各种详细输出--> <configuration status="INFO">
 <!--先定义所有的 appender-->
	 <appenders>
 <!--输出日志信息到控制台-->
		 <console name="Console" target="SYSTEM_OUT">
 <!--控制日志输出的格式-->
			 <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-
5level %logger{36} - %msg%n"/>
		 </console>
	 </appenders>
 <!--然后定义 logger,只有定义 logger 并引入的 appender,appender 才会生效-->
 <!--root:用于指定项目的根日志,如果没有单独指定 Logger,则会使用 root 作为
默认的日志输出-->
 <loggers>
	 <root level="info">
		 <appender-ref ref="Console"/>
	 </root>
 </loggers>
</configuration>
           

Spring5 框架核心容器支持@Nullable 注解

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

Spring5 支持整合 JUnit5

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结

总结

Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结
Sping5 尚硅谷 2020Spring框架概述IOCAOPAOP中操作的术语(专业名词)JdbcTemplateSpring5 框架新功能总结