Redkale 2.5.0 发布。
Redkale, 一个Java分布式微服务框架,1.4M的jar可以代替传统几十M的第三方。包含TCP/UDP、HTTP、RPC、依赖注入、序列化与反序列化、数据库操作、WebSocket等功能。 一方面模块高度整合,极大的简化业务开发代码,一方面暴露大量底层,方便二次框架开发。
Java并不臃肿, 臃肿的是你自己的设计思维!
本次版本更新内容:
1、【新增】支持Graalvm的native-image原生打包
2、【新增】apidoc生成OpenAPI 3.0规范json文件
3、【新增】net包支持TLS,且支持最新版TLSv1.3
4、【新增】增加@bean类,DataSource增加对所有entity参数是否有标记@entity的判断
5、【新增】增加PrepareCompiler 需结合redkale-maven-plugin插件使用
6、【新增】RedkaleClassLoader增加putDynXXX系列方法,增加Mpsc相关并发容器类
7、【优化】【不兼容】移除JDK8的支持, 最低版本升级为JDK11
8、【优化】【不兼容】废弃RetResult.attach属性
9、【优化】【不兼容】移除ResourceFactory.root(),增加ResourceFactory.create()
10、【优化】工程改成maven构建方式
11、【优化】RestMapping.name默认值不再去掉Service的服务名
12、【优化】Server.createContext()去掉参数,并从Server.start移至Server.init方法中调用
13、【优化】增加XmlReader,移除java.xml的依赖
14、【优化】convert支持java.lang.Record类
15、【优化】移除AsyncConnection的newInputStream
16、【修复】修复没mq配置下HttpMessageLocalClient无法正常使用的bug
17、【修复】修复HttpSimpleRequest复制给HttpRequest.requestURI没有加上path前缀
18、【修复】修复RESNAME_APP_CONF没有依赖注入的bug
原生打包:
需要安装Graalvm,在工程pom.xml 加入:
<plugin>
<groupId>org.redkale.maven.plugins</groupId>
<artifactId>redkale-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<nativeimageArgs>
<arg>--allow-incomplete-classpath</arg>
<arg>--no-fallback</arg>
</nativeimageArgs>
</configuration>
<executions>
<execution>
<id>redkale-compile</id>
<phase>process-classes</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
编译完工程后执行:
native-image -H:+ReportExceptionStackTraces --report-unsupported-elements-at-runtime -jar redkale-benchmark.jar
即可得到可运行文件 redkale-benchmark
由于redkale的零依赖, 原生打包后的文件大小远小于其他可原生打包的框架, 使用依赖官方plugins进行redis、mysql/postgresql等常规功能,打包后的大小依然不大, 如果SpringBoot工程加入redis、mysql等第三方后使用尚未成熟的Spring Native进行打包, 包体会非常大。
详情工程可参考: https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/frameworks/Java/redkale/redkale-native.dockerfile
OpenAPI文档:
编译完工程并启动后执行 bin/apidoc.sh 会在工程目录下生成符合OpenAPI 3.0.0规范的openapi-doc.json 离线文件。
将json文件放进swagger-ui即可展现文档。