JFinal changelog

  • • 发表于2021-08-05 12:08:34.0
  • • 作者 小徐同学
  • • 710 次浏览
  • • 0 条评论
  • • 最后编辑时间 2021-08-05 12:08:34.0
  • • 来自 [JFinal]

原创声明:本文为作者原创,未经允许不得转载,经授权转载需注明作者和出处

jfinal 4.9.15 changelog(包含 4.9.09、 4.9.10、 4.9.11、 4.9.12、 4.9.13、 4.9.14)

注意:由于新版本的 PathKit.getWebRootPath() 方法得到了改进,所以这个方法在
在 eclipse、IDEA 中以非 web 方法使用时可以得到正确的路径,所以原先在生成器
中使用的 PathKit.getWebRootPath() 需要改成:
System.getProperty(“user.dir”)

 >>> 官网可下载的项目资源中的生成器已经改为上述代码,可以下载使用

1: 添加 Engine.createIfAbsent(…),便于在未创建 engine 时便捷创建,免去 if 判断

2: 改进 Lexer,非解析块(原样输出块)处在独立行时,删除尾部换行字符

3:解决了上一个版本在模板文件包含字符 ‘\r’ 时,生成的内容多出来空行的问题

4:FileSource、ClassPathSource、HttpKit 中的 BufferedReader 改为使用 InputStreamReader,避免 8KB 的内存分配,并且可以保留模板中 windows 换行字符 \r

5:新增 Engine.getTemplateByString(String content, String cacheKey),常用于模板内容存放数据库的场景,其数据库中的 id 值可以作为 key

6:优化 Engine.getTemplateByString,避免在缓存模板之前两次创建 cacheKey

7:MethodKit 新增 forbiddenClass 与 forbiddenMethod

8:新增支持 ActiveRecordPlugin 支持定制 JavaType,也即在启动时可干预数据库字段类型与 java 类型的关系

9:Controller.doSetCookie 开放为 protected。path 为空字符串时处理成 “/“

10:SqlReporter 构造方法与 getConnection() 改为 public,便于扩展

11:Table 添加 setColumnType 与 setColumnTypeMap 开放为 public

12:PathKit.detecteWebRootPath() 支持 maven 项目在开发环境下探测到正确的 webRootPath

13:支持扩展 ActionMapping,方便自定义路由规则,通过 me.setActionMapping(…) 实现

14:Captcha 添加三个 setter 方法


jfinal 4.9.12 changelog

1:请勿使用 4.9.12 这个版本,而是直接使用 4.9.13 版。因为模板文件在具有字符 ‘\r’ 时会多出来空行
新版本 CharTable.isBlank(char) 添加 ‘\r’ 判断解决了该问题


jfinal 4.9.08 changelog(包含 4.9.07)

1:Record.getDate(…) 添加对 LocalDateTime、LocalDate、LocalTime 类型的自动转换

2:Model.getDate(…) 添加对 LocalDateTime、LocalDate、LocalTime 类型的自动转换

3:Db 的 queryDate(…) 添加对 LocalDateTime、LocalDate、LocalTime 类型的自动转换

4:Record 添加 getLocalDateTime(…)

5:Model 添加 getLocalDateTime(…)

6:Db 添加 queryLocalDateTime(…)

7:DbTemplaet 添加 queryLocalDateTime(…)

8:JFinalJson 添加 LocalDateTime、LocalDate、LocalTime 支持

9:Converters、TypeConvter 添加 LocalDateTime、LocalDate 支持

10:Generator 添加 addTypeMapping(…) 支持定制类型映射

11:Generator 新增两种可自动转换类型的 getter 方法:getDate、getLocalDateTime,例如:
generator.addTypeMaping(Date.class, LocalDateTime.class)

12:Dialect 添加 forPaginateTotalRow(…),为分页方法生成查询 totalRow 值的 sql,支持定制 total row 查询 sql

13:Db 添加 queryBigInteger

14:Model 的 doPaginate 与 deleteById 由 private 改为 protected,方便扩展

15:enjoy 下标取值表达式参数扩大支持类型的泛围,由 Integer 改为 Number

16:FastJson 中的 Exception 改为 Throwable

17:redis 插件中的 ICallback 添加泛型


jfinal 4.9.06 changelog(包含 4.9.04、4.9.05)

1:Model、Db 新增 each 方法

2:DbTemplate、DaoTemplate 新增 each 与 getSqlPara 方法

3:MetaBuilder 中的 filter 方法更名为 skip

4:微调 PathScanner,在跳过 provided 依赖时输出一条 debug 信息

5:DaoTemplate 添加 queryDouble、queryFloat、queryDate、queryBoolean

6:修正 redis plugin 中 hgetCounter 方法的 bug,添加 hgetFloatCounter


jfinal 4.9.03 changelog

1:Routes 添加路由扫描配置,通过 Routes.scan(basePackage) 扫描路由

2:添加 Path 注解以及 PathScanner 实现路由扫描功能

3:controllerKey 改为 controllerPath,多个 Controller 可共享同一个 controllerPath

4:Invocation 中的 getControllerKey() 改名为 getControllerPath(),原方法保留并 @Deprecated


jfinal 4.9.02 changelog(包含 4.9.01)

1:enjoy 支持中文变量名、中文方法名、中文模板函数名,开启配置 Engine.setChineseExpression(boolean enable)

2:#number 指令舍入规则由默认银行家舍入法改为四舍五入法

3:Engine 添加 setRoundingMode(…) 用于配置 #number 指令、Arith 的舍入规则,默认为四舍五入

4:#date 指令支持 LocalDateTime、LocalDate、LocalTime

5:ActionReporter 支持定制,添加配置方法 Constants.setActionReporter(…)

6:改进 JFinalJson,支持可重入转换

7:Prop 的 get(String)、get(String, String) 方法对返回值添加 trim() 操作

8:Enjoy 的 Compressor 改进算法,提升压缩率,压缩 sql 模板格式更美观,sql 压缩配置方法:
activeRecordPlugin.getEngine().setCompressorOn(‘ ‘);

9:改进 RedirectRender 在 nginx 反向代理时的支持,redirect(…) 保持住 https

10:Writer 实现 AutoCloseable 接口,支持 try with resources 语法

11:Template 对于 Writer 的使用改为 try with resources 语法

12:新增 TimeKit 用于简化 JDK 8 新增的时间 API

13:Converters、DateKit、Validator、Jackson 中的 SimpleDateFormat 改为使用 TimeKit

14:Kv、Okv 添加 keep(String…)

15:CPI 添加 getAction(Controller),可获取 Controller 内部的 Action 属性,提升扩展性

16:enjoy 模板引擎 buffer 支持 reentrant,添加 reentrantBufferSize 配置

17:Redis 的 Cache 添加订阅、发布 API(感谢 jfinal 俱乐部 @杜福忠 贡献代码)

18:添加 Constants.setToJavaAwtHeadless() 配置。在缺少显示设备、键盘或鼠标时
Graphics、Font、Color、ImageIO 等等 API 仍然能够使用

19:WriterBuffer.bufferSize 默认值由 2048 改为 1024,Engine.setWriterBufferSize(int)
更名为 setBufferSize(int)

20:#random 指令中的 Random 改为使用 ThreadLocalRandom

21:HashKit 中的 Random 改为使用 ThreadLocalRandom

22:Model.find(Config, Connection, String, Object…) 改为 protected

23:PropKit、Prop 添加 getDouble 方法

24:NowDirective 指令中 IOException 改为 Exception,在非 IO 异常时输出模板文件与行号

25:Injector.injectBean(…) 异常信息添加 paraName

26:Controller.createToken(…) 添加返回值

27:MethodKit.addExtensionMethod 支持扩展方法的第一个参数为父类

28:Encoder 由抽象类改为接口

29:Render 实现类添加 OutputStream 与 Writer 的 flush() 操作,提升对客户端的响应速度

30:将 ActionHandler 中对 Controller 的依赖注入挪至 ControllerFactory,便于用户扩展时控制注入

31:JFinalJson 添加 setModelAndRecordFieldNameToCamelCase(boolean toLowerCaseAnyway)

32:Enjoy 的 Unary 添加对 short、byte、BigInteger 的支持

33:RangeArray 消除除法操作

34:Db、DbPro、DbTemplate 添加 queryBigInteger(…)

35:Druid 添加三个配置:defaultTransactionIsolation、validationQueryTimeout、keepAlive

36:JFinalConfig 添加 useFirstFound(…)

37:Fastjson 配置为 setSafeMode 禁用 autoType,添加 addSerializer、setSafeMode 方法

38:输出指令与 #escape 指令去除 Short 类型判断分支

39:FieldKeybuilder 的 classHash 改为 int


jfinal 4.9 changelog

1:优化、重构 JFinalJson 模块,性能提升至 jackson 的 3 倍,增强扩展性,并增加了更多功能性配置

2:enjoy 添加 html 压缩功能,配置方法 engine.setCompressorOn();

3:Engine 添加 addEnum(…),便于支持枚举类型在模板中的使用

4:enjoy 的 Ctrl 添加一个 Object attachment 对象及其 getter、setter 方法,便于穿透 Scope 传递变量

5:Scope 添加 getSharedObject 方法

6:优化 StrKit.toCamelCase(…),并添加一个带有 boolean toLowerCaseAnyway 参数的方法,便于支持本来就是驼峰格式的场景

7:优化 StrKit.isBlank(…) 性能

8:enjoy 的 Arith 针对 BigDecimal.divide(…) 添加 scale、rounding mode 两个配置。默认值分别为:5、四舍五入

9:Lexer 在字符 # 与关键字指令相继出现时,不再要求一定解析出指令,便于支持 $(“#if”).method() 这类 jquery 用法

10:enjoy 的 Arith 与 Compare 表达式添加对 BigInteger 的支持

11:enjoy 的 Template 添加四个携带 Func 接口的 render 方法,支持更深度的扩展

12:Engine 添加 setCacheStringTemplate(boolean) 用于控制是否缓存通过 getTemplateByString(String) 获取的模板

13:EngineConfig 添加 setWriterBuffer,便于用户自己扩展 WriterBuffer

14:添加 CORSInterceptor、EnableCORS,支持跨域资源共享(jpress、jboot 作者 @海哥 贡献)

15:FileRender 添加 boolean normalRenderOnly,用于强制客户端只能单线程下载,减轻服务器带宽压力

16:Db 添加两个 txInNewThread 方法,支持在新线程开启事务

17:Db.queryBigDecimal(…) 支持 String 类型

18:Model、Record 的 getBigDecimal 支持 String 类型

19:TableMapping.putTable(…) 不再检测重复 key 值,用于支持动态更新 model 映射

20:TableBuilder 改为 public 可见性,便于用户利用其动态更新 model 映射

21:DruidPlugin 添加 setDefaultTransactionIsolation 配置,所有属性改为 protected

22:Model、DbPro 中开启的 PrepareStatement 在 调用在 try-with-resources 中保障被 close() 掉

23:Db 带有 List<Record 参数的 batch 方法改为 ? extends Record,支持 Record 子类

24:添加 CPI.addModelToConfigMapping(…)

25:Ret、Kv、Okv 添加 getDouble、getFloat 方法

26:MixedJsonFactory 支持 setDatePattern

27:Json 的 datePattern、defaultDatePattern 允许配置为 null,用于支持输出 long 型时间戳

28:HttpKit 添加 setConnectionTimeout 与 setReadTimeout 配置

29:jackson 添加配置: objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false), 不存在 getter 方法时不抛异常

30:FastStringWriter 的 MAX_BUFFER_SIZE 由 256K 改为 512K

31:enjoy 的 Logic 去除 newWorkMode 这个控制变量及其相关代码

32:添加 Func lambda 函数工具箱

33:WriterBuffer 的 MAX_BUFFER_SIZE 由 10M 改为 2M

34:InterceptorStack 添加对内部拦截器的注入

35:cos 升级到 2020.4,提升安全性,同时支持 jfinal 与 cos 中的 ExceededSizeException 两个异常类型

36:jackson 升级到 2.11.0

37:fastjson 升级到 1.2.68


jfinal 4.8 changelog(包含 4.3、 4.4、4.5、4.6、4.7 版):

1:Enjoy 模板引擎添加 FastFieldGetter,支持动态类型的前提下性能提升 13%

2:添加 Engine.setFastMode(boolean),用于配置极速模式

3:增强 Enjoy 模板引擎,新增 addDirective(.., .., boolean keepLineBlank) 方法,支持指令独占一行时保留前后空白字符:与输出指令 #() 行为一样

4:Enjoy 模板引擎的 #date、#number、#escape 等输出型指令,配置成 keepLineBlank = true

5:sql 管理模块的 #para 指令配置为 keepLineBlank = true

6:优化注释对输出格式的影响,注释与指令处于同一行时保留行尾的换行字符(注释处在独立行时无此问题)

7:优化 FastStringWriter 性能

8:ByteWriter、CharWriter 递归优化为 while 循环

9:优化 #escape 指令性能,StringBuilder 字符串拼接改为直接向 Writer 输出

10:输出指令 Output 去掉对 Boolean 类型的判断

11:添加 Engine.removeSharedObject(…) 方法,可配合 addSharedObject(…) 支持动态切换共享对象,适用更多应用场景

12:添加 JdkEncoderFactory 方便配置 Engine.setToJdkEncoderFactory() 支持 utf8mb4 编码的 emoji 表情

13:改进 Utf8Encoder,在极端情况下碰到无法编码的字符时,抛异常改为输出问号,提升用户体验

14:EngineConfig.getSharedObjectMap() 改为 public 可见性

15:DbPro 中的 8 个方法由默认可见性改为 protected,便于继承扩展

16:添加 MetaBuilder.filter(…) 方法,更方便的 table 过滤支持

17:改进 @Para 注解,支持单独指定 defaultValue 参数值,支持传入空字符串为默认值

18:改进 ProxyCompiler,解决 tomcat 丢失 CLASSPATH 导致的代理编译异常

19:改进 ProxyGenerator,解决单一数组参数方法无法被代理的问题

20:proxy_clas_template.jf Invocation 与 Callback 的实参改为 p0

21:StrKit 添加 defaultIfBlank(…)、join(…) 方法

22:HandlerKit 添加对 queryString 追加参数的支持

23:文件上传组件 cos 升级到 2019.8 版本

24:添加 Constants.setDenyAccessJsp(boolean) 配置方法,默认不允许直接访问 jsp 文件,加固 tomcat、jetty 安全

25:JsonRender、TextRender 中去掉对 http header 的缓存控制,减少数据传输量,有利于构建超高并发 json 服务

26:Controller.renderText(text, contentType) 的 contentType 参数支持简写为 “xml”、”js”、”json”、”html”,提升开发体验

27:ActionHandler 抽取 getAction() 方法,便于子类覆盖自由定制路由

28:改进 MetaBuilder,支持多 catalog 且同名 table 情况下的备注生成

29:RedisPlugin 去除对于 password 参数的 null 值判断,方便无 password 环境下使用

30:Template 添加无参 renderToString() 方法

31:生成器辅助类 TypeMapping,java.sql.Time 映射为其自身

32:添加 Constants.setToCglibProxyFactory()

33:解决 AopFactory 在某些条件下的循环依赖注入无法保障单例的问题

34:log 模块添加 slf4j 日志支持,添加可变参数 API,并且添加 trace 日志级别

35:添加 Contants.setToSlf4jLogFactory() 支持快捷配置到 slf4j 日志

36:reids 插件的 Cache 添加 hgetCounter(Object key, Object field)

37:aop 模块添加 addSingletonObject(Class<?> type, Object singletonObject),支持指定类型的映射

38:Enjoy 模板引擎添加 NullMethodInfo,简化代码提升性能

39:Enjoy 模板引擎 Scope 中的 getGlobal、setGlobal、removeGlobal 支持顶层 data 为 null

40:Enjoy 模板引擎 #set 系列指令放开对于自增、自减表达式的使用限制

41:JFinalFilter 所有属性改为 protected ,便于继承扩展


jfinal 4.2 changelog: (包含 4.0、4.1)

1:新增 proxy 模块,enjoy、class loader、dynamic compile 美妙结合,
以 613 行代码消除对 cglib-nodep (19505 行代码)的第三方依赖

2:删掉 cglib-nodep 依赖,使得 jfinal 告别第三方依赖

3:Enhancer、Duang 中对 cglib 的依赖改为使用 proxy

4:删除 @Enhance 注解,新增的 proxy 模块会根据拦截器存在与否自动决定是否 enhance,
使用 @Clear 清除拦截器便可消解掉 @Enhance

5:去掉 aop 模块有关 enhance 配置的代码,已被 proxy 消解

6:Model、Db 添加 template 模板查询 API,使得用户相关代码量再减少 50%,进一步提升开发体验

7:添加 DaoTemplate、DbTemplate,用于实现模板查询

8:Validator 添加 setRet(…)、getRet() 便于接管验证结果,方便业务层返回值与 Validator 返回值统一
成 Ret,进而便于前端 js 统一处理逻辑

9:改进 ActionHandler,异常输出增加 action 签名,方便更快定位

10:添加 Reflect.getMethodSignature(…)

11:Controller 中的 getDate/getParaToDate 改为使用 TypeConverter,支持更广泛的 date pattern

12:增强 Converters,支持 HTML 5 的 date time 组件,格式为:2019-01-23T11:22

13:configInterceptor 回调次序调整到 configRoute 之前,支持 configRoute 中的 routes
级拦截器被注入的对象应用全局拦截器

14:Enjoy 的 field 表达式,调整 RealFieldGetter 优先级高于 ModelFieldGetter,
支持 field 表达式获取 Model 中的 public 属性,便于代替 static field 用法节省代码量

15:enjoy 模块三处代码改为 try with resource 风格,老风格是为了老版本兼容 JDK 1.6

16:TextRender 判断 contentType 是否包含 “charset” 来决定是否 setEncoding
避免 setEncoding 覆盖掉 contentType 中的 “charset”

17:删除 Ret、Kv 中早已被 @Deprecated 的代码

18:删除早已被 @Deprecated 过的 JMap,早已被 Kv 完全取代

19:删除早已被 @Deprecated 的 Sqls,早已被 sql 模板完全取代

20:jetty-server 升级到 2019.3

21:新增 ProxyFactory 扩展 CglibProxyFactory


jfinal 3.8 changelog:

1:AopFactory 修复子类没有属性时,超类无法被注入的问题

2:Aop 中的有关配置的 API 转移至 AopManager

3:Constants 中添加 setInjectSuperClass(boolean) 配置是否对超类进行注入

4:Validator 添加注入功能

5:Cron4jPlugin 添加 getTaskInfoList(),便于扩展

6:Callback 优化性能,并去除 injectTarget 机制

7:Invocation 中去除 useInjectTarget


jfinal 3.7 changelog:

1:增强 Aop 模块,支持任意层次数的注入,完美支持循环依赖

2:Aop 支持对超类进行注入,需要配置 Aop.setInjectSuperClass(true),默认不开启

3:PropKit 添加 useFirstFound(String… fileNames) 方法,支持配置文件优先加载策略
具体用法参考 jfinal_demo_for_maven,可在官网首页右侧下载

4:去除 AopFactory 中的 injectDepth 检测机制,已更好支持循环依赖注入

5:ControllerFactory 添加 recycle(Controller) 方法,方便用户自定义 controller 回收策略

6:增强 MetaBuilder,解决 Oracle 驱动 bug:生成重复主键

7:增强 DataDictionaryGenerator,解决 Oracle 驱动 bug:生成字典文件时报异常

8:Enjoy 的 FieldKit、MethodKit 添加 clearCache() 方法,便于扩展

9:Engine 添加 setEncoderFactory(…) 方法,方便定制 Encoder

10:#include 指令模板参数为变量时,提示使用 #render 指令,提升开发体验

11:ClassPathSource 找不到文件时的异常提示信息如果发生在 class path、jar 包中,
提示信息中添加 “in CLASSPATH or JAR” 文本,定位错误到 class path 与 jar
包而非文件系统目录加快排错效率


jfinal 3.6 changelog:

1:enjoy 引擎添加 #switch、#case、#default 指令,与 java 12 的 switch 新特性保持一致,既减少了代码量,又增强了功能

2:enjoy 引擎添加 #call 指令,支持调用模板函数时,函数名与函数参数动态化,进一步提升 enjoy 引擎的灵活性

3:Generator、MetaBuilder 添加生成 remarks 备注功能,需要配置:gen.setGenerateRemarks(true)

4:Controller 添加 set(String name, Object value),可替代 setAttr(…) 进一步节省代码量

5:Controller 添加 get(…) 系方法,可替代 getPara(…) 系方法,可进一步节省大量代码

6:Controller 添加 getInt(…)、getLong(…) 等系方法,可替代 getParaToInt(…) 等系方法,进一步节省代码量

7:增强 Tx 事务拦截器,在 Controller 中使用 try catch 时,可以在 catch 块中使用 render

8:Kv、Okv、Ret 添加 setIfNotBlank(…),使得 if(StrKit.notBlank(v)) kv.set(k, v)
可以改写为 kv.setIfNotBlan(k, v),进一步减少代码量。 还添加了 setIfNotNull(…) 原因同上

9:Db、DbPro 添加 getSqlParaByString(…) 方法,便于从 String 变量的模板中获取 SqlPara 对象,
在 String 变量中使用 enjoy 引擎管理 sql 的生成远远优于使用字符串拼接方式

10:Model、Db、DbPro 添加 findAll() 方便获取类似于字典 table 这样的小表数据

11:EvictInterceptor 支持多 cacheName,用逗号分隔即可:@CacheName(“a”, “b”)

12:JFinalFilter 添加对 onStart()、onStop() 回调,并针对 jfinal undertow 优化异常提示信息

13:ErrorRender 中的 String 型数据改为 byte[] 型数据,提性能。去除 flush(),避免 undertow 之下客户端
主动断开连接时的 IO 异常

14:去掉 Render 子类中的 flush() 调用,避免 undertow 之下客户端主动中断连接时的 IO 异常,减少日志输出量

15:Routes 添加 setMappingSuperClass(boolean) 配置控制器超类中的 public 方法是否被映射为 action,
默认值为 false

16:Model、Db、DbPro 中的针对多主键(联合主键) 的 findById(…) 方法更名为 findByIds(…),
deleteById(…) 更名为 deleteByIds(…) 解决 JDK 8 之下的参数类型转换异常问题

17:ActionMapping 针对 Routes.setMappingSuperClass(…) 优化映射性能,大型项目启动速度提升 200 毫秒左右

18:Model 添加 setOrPut(…) 方法,可自动判断数据是否属于数据表中的字段,如果是则添加修改标记,方便支持 update()

19:JFinalConfig 添加 onStart()、onStop() 取代 afterJFinalStart()、beforeJFinalStop(),
在减少代码输入量的同时,降低输入手误的概率。原方法被 @Deprecated 但仍然可用,方便升级兼容

20:Sql 管理模块使用的 Engine 对象添加配置:engine.setToClassPathSourceFactory(),默认将从 class path
与 jar 包中加载 sql 文件

21:改进 MethodKit、FieldGetter 放开对 getMethod()、getField() 等方法的调用

22:NestedTransactionHelpException、ValidateException 添加 fillInStackTrace() 优化性能。
消除抛异常时 Throwable.fillInStackTrace() 的耗时动作,这两个异常中的 stack 信息不会被使用,
所以没必要在 fillInStackTrace() 中进行任何操作

23:Aop、AopFactory 添加 get(Class targetClass, int injectDepth),支持指定注入深度

24:优化 AopFactory,消除为 Controller 多级注入时多余的动作,进一步减少代码量

25:Db、DbPro 添加 paginate(int, int, boolean isGroupBySql, SqlPara sqlPara),在支持 SqlPara
参数的同时还支持 boolean isGroupBySql 参数

26:Routes 添加 getRoutesList()、getControllerKeySet() 便于深度扩展,例如扩展可插拔路由功能

27:Dialect、MysqlDialect、PostgreSqlDialect 添加 forFindAll(…)

28:DataGetter 改为通过 Converter.convert(v) 进行类型转换,兼容更多 pattern 格式的日期型数据

29:com.jfinal.core.paragetter 包下所有抛出 ActionException 异常的状态码由 404 改为 400,与 controller 中保持一致

30:ParaProcesorBuilder 警告信息添加类名与方法名,便于开发过程中快速定位问题地点

31:Record 添加 getObject(…) 方法

32:Page 添加所有属性的 setter 方法,便于 fastjson 这类第三方反序列化

33:com.jfinal.plugin.activerecord.CPI 添加 getConfig(…)、getTable(…)、getUsefulClass(…),
便于扩展 active record 功能

34:DruidPlugin 的 initialSize 默认值改为 1 加快启动速度。maxActive 默认值改为 32 节省 Connection 资源

35:KeepByteAndShortModelBuilder、KeepByteAndShortRecordBuilder 避免 JDBC 将 Short、Byte 类型字段的
null 值转换为 0

36:Prop 添加 public 无参构造方法,并为属性赋予默认值,便于扩展

37:Redis.call(…) 返回值由 Object 改为泛型 T

38:jetty-server 从 2018.11 升到 2019.1

评论区(共0条评论)
0条评论
Ctrl+Enter
作者

Michael

小徐同学

帖子:73 回复:0

全栈搬运工

作者详情》
Top