首页 > 其他分享 >spring5.0新特性学习

spring5.0新特性学习

时间:2023-09-25 18:32:29浏览次数:31  
标签:绑定 数据库 spring5.0 特性 学习 DataClassRowMapper bean ----- dataClass

核心容器修订:

函数式编程方式注册bean;

对GraalVM Native Image的支持(可以通过运行原生代码的方式提高速度,原理是剔除了一些不需要的编译path来提高速度)

对JavaRecord类模型的支持(JDK14引入的类,可以直接在数据绑定的时候,对Java bean中的变量可以省略get直接用变量名作为方法名来使用)

对JDBC支持的修改定

新增加了jdbcTranscationManager类(DataSourceManager的子类,有些数据库的抛错误并不是执行sql时候发生异常而是在commit或者rollback的时候发生数据访问异常dataAccessException,这种以前是不会被封装好的。有了jdbcTranscationManager这种提交异常也能被封装起来,方便统一处理。

新增了一个DataClassRowMapper,之前的rowMapper除了自定义主要是做数据绑定用到的那个人beanProperityRowMapper,是根据Javabean的public set方法来对bean的属性赋值,新的这个DataClassRowMapper是能够基于DataClass的构造器把数据库返回的结果进行绑定,同时这个DataClassRowMapper继承于beanProperityRowMapper,可以把使用beanProperityRowMapper的地方全部替换成DataClassRowMapper,spring会去检查绑定的目标类是dataClass还是Java bean,从而选择合适的类。

⚠️这里的dataClass的这个定义叫法来自于Kotlin语言,在Kotlin中把数据存储的类叫dataClass

新增了JdbcTemplate queryForStream方法:能够用streamAPI的方式来操作数据库的返回结果,这里数据库连接关闭的时间是在stream流结束的时候,避免stream流过长占用数据库时间。

新增R2DBC模块(spring-r2dbc)

和原来的对应关系如下:

​    ​    ​    ​    ​R2DBC                                      ----->         JDBC

数据库连接 ​ConnectionFactory -----> Datasource

事务控制 ​R2dbcTransactionManager ​ -----> ​ ​DataSourcetransactionmanager

客户端 DatabaseClient ​ ​ ​ ​ ​ ​ -----> ​ ​JdbcTemplate

标签:绑定,数据库,spring5.0,特性,学习,DataClassRowMapper,bean,-----,dataClass
From: https://blog.51cto.com/u_15927490/7598202

相关文章

  • java有哪三大特性?
    文章目录⭐专栏介绍问题描述问题答案⭐专栏介绍本专栏会持续更新各种关于JAVA的问题,包括面试题,JAVA入门到精通等。更新速度保持在每天3—5篇问题描述java有哪三大特性?问题答案1、JAVA有三大特性,分别是:封装、继承和多态。2、封装:面向对象的封装就是把描述一个对象的属性和行为的......
  • 【红帽】跟着学习如何使用桌面访问命令行
    今天我们分享一些红帽Linux的知识,记得关注,会一直更新~▶1、以student用户身份并使用student作为密码登录workstation 1.1.在workstation上,从GNOME登录屏幕中单击student用户帐户。系统提示输入密码时,请输入student。1.2. 单击SignIn。▶2、将student的密码从student更改为55T......
  • tarjan学习笔记
    tarjan学习笔记0.前置知识强连通图在一个有向图中,若从任意一点可以到达其他所有点,则称之为强连通图强连通分量(SCC)一个图中的极大强连通性质子图(强连通图的强连通分量是它本身)\(\small{极大强连通子图指一个不能加入另外的点的强连通子图(一个强连通子图可能包含一个或多......
  • 模式识别与机器学习——生成式分类器 课程笔记
    有监督学习:从有标记的数据中学习推断函数目标函数:\(Y=f(x)\)或\(P(Y|X)\)注意:条件概率用小写p表示,先验概率用大写P表示。贝叶斯判别原则给定观测值X,判断其属于\(\omega1\)类还是\(\omega2\)类,最小化误差概率条件下,\(P(\omega1|X)>P(\omega2|X)\)则判断成\(X\in\omega1\),......
  • 计算机视觉:从图像识别到深度学习
    ......
  • JDK10优化了哪些功能以及新增了哪些特性功能|JDK各个版本的特性分析
    一、前言上一期讲了JDK9的一些新特性,需要回顾的朋友们可以看下这篇文章《JDK9优化了哪些功能以及新增了哪些特性功能》这一期讲一讲JDK10的一些新功能二、新增特性以下是JDK10的一些新增或变化的特性:1.局部变量类型推断(LocalVariableTypeInference):引入了var关键字,允许在局部变......
  • JDK9优化了哪些功能以及新增了哪些特性功能|JDK各个版本的特性分析
    一、前言我们现在大部分公司都在使用jdk8,jdk8的功能主要是增加了lambda流式处理,还有优化了线程安全的时间LocalDate,这里我就先不赘述了,那jdk9相对jdk8优化了哪些功能,以及新增了哪些特性功能呢,下面一一给大家讲述一下二、新增特性以下是一些主要的变化和新增特性:1.模块化系统(Jig......
  • 《Java核心技术卷1》学习笔记汇总
    前言转部门了,而且换语言了,开始写接口了,虽然也会用到CPP,但是主要语言是JAVA,因此从零开始学JAVA吧。目录Java程序设计描述Java程序设计环境Java的基本程序设计结构对象与类继承接口、lambda表达式与内部类异常、断言和日志泛型程序设计集合图形用户界面程序设计Swing用户界面组件并发......
  • 可信而可靠,关于Rust 的学习
    最早接触到Rust是在几年前的一次技术大会上,黄东旭说TiKV是用Rust语言编写的,引起了我的一些兴趣,但只是保持关注而已。我一直认为每一种编程语言都有着各自的典型应用领域,也有着各自的编程范式,没有最好的编程语言(参见《PHP是最好的编程语言吗?》),但存在最适合当前的问题领域的编......
  • mysql学习
    mysql0.数据库常见概念0.1概念数据库:英文单词DataBase,简称DB。按照一定格式存储数据的一些文件的组合。顾名思义:存储数据的仓库,实际上就是一堆文件。这些文件中存储了具有特定格式的数据。数据库管理系统:DataBaseManagement,简称DBMS。数据库管理系统是专门用来管理......