核心容器修订:
函数式编程方式注册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