Spring5学习笔记

Spring5学习笔记,第1张

Spring5学习笔记

Spring5

一、Spring概念二、IOC容器

1、基于xml方式2、基于注解方式3、完全注解开发 三、Aop

1、Aop概念2、Aop *** 作 四、JdbcTemplate五、事务管理六、Spring5新特性

1、日志log4j2、注解3、测试功能改进4、SpringWebFlux(重点)

(1)webflux介绍:异步非阻塞的框架(2)响应式编程(3)SpringWebflux执行流程和核心API(4)SpringWebflux基于注解编程模型(5)SpringWebflux基于函数式编程模型(全程无@Controller、@Service注解)(6)补充WebClient使用

一、Spring概念

Spring框架主要由七部分组成,分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC轻量级开源JavaEE框架。
二、IOC容器 1、基于xml方式

控制反转,把创建对象过程交给spring进行管理。

注意:上面默认对象创建时为单实例,单实例在加载配置文件时候就会创建对象,多实例模式在加载配置文件时不会创建对象,在调用getBean()方法时创建多实例对象。
bean的单实例和多实例声明如下:

bean声明的时候不仅有singleton、prototype,还有request、session,当使用request、session时会把创建的对象放到request或session里面。

如下图,若修改dao的名称,直接修改xml文件即可,不用修改代码

IOC *** 作Bean管理
(1)基本类型和对象

(2)数组和List、Map集合类型
方式一:

简化。方式二:
- IOC的Bean工厂(FactoryBean)
1、spring有两种bean类型
(1)普通Bean,在配置文件中定义Bean类型就是返回类型
同上
(2)工厂Bean,在配置文件中定义Bean类型和返回类型不一样
bean的生命周期
声明初始化和销毁方法

xml自动装配
以上的xml声明bean的时候都是使用手动装配的,自动装配有两种方式(在注解中就对应@Autowried按byType自动注入,而@Resource默认按byName自动注入):
xml管理外部属性文件.properties(如数据库连接信息等)
比如下面的例子,就可以提取出来

(1)提取属性值到properties文件,文件放在src根目录下

(2)引入名称空间、引入外部属性文件、使用表达式
2、基于注解方式

创建对象
(1)基本使用

(2)组件扫描过程中,使用的是默认的filter,如果要使用自定义filter,需要修改为以下配置
注入属性
(1)基于注解方式实现属性注入
(顺便解释下@Autowired、@Resource、@Qualifier、@Value的区别,注意它们所在包,@Resource属于java扩展包,不是Spring)
3、完全注解开发

比如上面的注解创建对象中,xml的组件扫描步骤可以使用配置类代替

加载创建对象时不再加载xml文件,使用配置类

三、Aop 1、Aop概念

面向切面,不修改源代码进行功能增强。Aop四大术语
Aop底层使用动态代理
(1)有接口情况,使用jdk动态代理

代码:

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

2、Aop *** 作

spring框架一般都基于AspectJ实现Aop *** 作

可以参考一下第三阶段:5、Spring之AOP

注解方式实现aop

注意:上面依旧有xml少量配置,如果完全使用注解,可使用以下方式代替xml配置

切入点抽取
像上面的@Before、@AfterReturning中对相同切入点进行提取,可使用以下方式:
1、新建切入点公共类,使用@Pointcut注解

切入方法的优先级设置

配置文件方式实现aop

四、JdbcTemplate

配置文件方式
(1) 引入依赖jar
(2)配置数据库连接池
(3)配置JdbcTemplate对象,注入DataSource

(4)jdbcTemplate *** 作数据库
(4-1)执行查询sql(返回基本类型、对象、集合)
(4-2)批量增、删、改
五、事务管理

spring进行事务管理有两种方式
(1)编程式事务管理
(2)声明式事务管理(底层使用Aop)
(2-1)基于注解

上面的第二步注解方式可以替换成配置文件,实现完全注解

注解@Transactional的参数说明

(2-2)基于xml
(3)补充事务中出现的三种读问题:脏读、幻读、不可重复读。这三个问题都能用事务隔离级别解决

六、Spring5新特性 1、日志log4j 2、注解

(1)@Nullable

3、测试功能改进

(1)JUnit4

(2)JUnit5

4、SpringWebFlux(重点) (1)webflux介绍:异步非阻塞的框架

(1-1)与SpringMVC的区别

(2)响应式编程

(2-1)概念

(2-2)Reactor实现

(3)SpringWebflux执行流程和核心API (4)SpringWebflux基于注解编程模型

(5)SpringWebflux基于函数式编程模型(全程无@Controller、@Service注解)

(6)补充WebClient使用

作用:模拟http请求,可指定请求地址、参数等

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5707928.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存