Spring5
1.Spring 是轻量级的开源的 JavaEE 框架
IOC: 控制反转,把创建对象过程交给 Spring 进行管理
Aop:面向切面,不修改源代码进行功能增强
Webflux: 响应式编程
2.特点
方便解耦,简化开发,Aop 编程支持,方便和其他框架进行整合
3.IOC: 控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理
原理: xml 解析、工厂模式、反射
Bean管理:1、基于 xml 配置文件,2.基于注解方式,3.配置类方式
生命周期: 从对象创建到对象销毁的过程,通过构造器创建 bean 实例,为 bean 的属性设置值和对其他 bean 引 用,调用 bean 的初始化的方法,bean 可以使用了,)当容器关闭时候,调用 bean 的销毁的方法
@Autowired:根据属性类型进行自动装配 @Qualifier:根据名称进行注入
@Resource:可以根据类型注入,可以根据名称注入
4.AOP: 面向切面编程(方面),利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度 降低,提高程序的可重用性,同时提高了开发的效率
原理: 动态代理
第一种 有接口情况,使用 JDK 动态代理,创建接口实现类代理对象,增强类的方法
第二种 没有接口情况,使用 CGLIB 动态代理,创建子类的代理对象,增强类的方法
连接点:类里面哪些方法可以被增强,这些方法称为连接点
切入点: 实际被增强的方法,execution([权限修饰符] [返回类型] [类全路径] [方法名称]([参数列表]) )
通知: 实际增强的逻辑部分
前置通知
后置通知
环绕通知
异常通知
最终通知
切面:把通知应用到切入点的过程
5.Webflux:
(1)是 Spring5 添加新的模块,用于 web 开发的,功能和 SpringMVC 类似的,Webflux 使用
当前一种比较流程响应式编程出现的框架。
(2)使用传统 web 框架,比如 SpringMVC,这些基于 Servlet 容器,Webflux 是一种异步非阻
塞的框架,异步非阻塞的框架在 Servlet3.1 以后才支持,核心是基于 Reactor 的相关 API 实现
的。
(3)解释什么是异步非阻塞
* 异步和同步
* 非阻塞和阻塞
(4)Webflux 特点:
第一 非阻塞式:在有限资源下,提高系统吞吐量和伸缩性,以 Reactor 为基础实现响应式编程
第二 函数式编程:Spring5 框架基于 java8,Webflux 使用 Java8 函数式编程方式实现路由请求
6.响应式编程(Reactor实现)
(1)响应式编程操作中,Reactor 是满足 Reactive 规范框架
(2)Reactor 有两个核心类,Mono 和 Flux,这两个类实现接口 Publisher,提供丰富操作
符。Flux 对象实现发布者,返回 N 个元素;Mono 实现发布者,返回 0 或者 1 个元素
(3)Flux 和 Mono 都是数据流的发布者,使用 Flux 和 Mono 都可以发出三种数据信号:元素值,错误信号,完 成信号,错误信号和完成信号都代表终止信号,终止信号用于告诉订阅者数据流结束了,错误信号终止数据流 同时把错误信息传递给订阅者
SpringBoot
1.Cache
1.Cache接口为缓存的组件规范定义,包含缓存的各种操作集合,.CacheManager接口来统一不同的缓存技术
2.开启基于注解的缓存 @EnableCaching
@Cacheable
cacheNames/value: 指定缓存组件的名字
key: 缓存数据使用的key,默认使用方法参数的值,value值为方法返回值,#id -> 参数值
condition 指定符合条件的情况下才缓存
unless: 否定缓存,当指定条件为true,方法的返回值不缓存,可以获取结果进行判断
unless = "#result == null"
sync:是否异步模式
@CachePut
修改了数据库的某个数据,同时更新缓存
@CacheEvict
缓存清除