Jboot 一个更简单的分布式、微服务框架。
Jboot是一个基于 JFinal、JFinal-Undertow、Dubbo、Seata、Sentinel、ShardingSphere、Nacos 等开发的微服务框架,帮助开发者降低微服务、分布式开发门槛。爽爽开发,快乐生活。
到目前为止,Jboot 已经开源超过了 5 年的时间,迭代了 190+ 个版本,已经被超过 1000+ 公司在使用,其中包含了多个知名的上市公司。
Jboot v3.9.4 最大的功能,是正对 JFinal Enjoy 模板引擎的增强,完美的支持了 ”枚举“ 在模板引擎中的使用。这样带来的好处是在 html 模板引擎里,可以和 Java 毫无差别的使用枚举。
而枚举,在系统开发里,更多的是用来做 ”数据字典“,很多系统(比如 JbootAdmin)的数据字典是可以直接生成 ”枚举“ 代码的。
比如:”支付类型“ 的枚举如下:
public enum PayType { ALIPAY(1, "支付宝"), WECHAT(10, "微信支付"), public int value; public String text; PayType(int value, String text) { this.value = value; this.text = text; } public static String text(Integer value) { if (value != null) { for (PayType type : values()) { if (type.value == value) { return type.text; } } } return null; } public static boolean isAlipay(Integer value) { return value != null && ALIPAY.value == value; } }
我们只需要给该枚举添加注解 @JFinalSharedEnum , 就可以在在 html 通过如下的方式使用该枚举了。
比如:
<html> <body> #(PayType.ALIPAY.text) <br/> #(PayType.text(1)) <br/> #(PayType.isAlipay(1)) <br/> #for(type : PayType.values()) ---#(type.value)----#(type.text)--- <br/> #end </body> </html>
为什么说是对 JFinal 模板引擎的增强呢,因为 JFinal 模板引擎默认情况下,可以添加枚举,但是并不支持直接调用枚举里的静态方法。
当 Jboot 添加枚举的静态方法支持后,最直接的好处是:我们可以把保存在数据库的 int 类型的枚举数据,在模板引擎里通过 #(PayType.text(1)) 这样显示出其 text 内容。
虽然一个很小的功能,却非常实用。虽然在 JFinal 社区也给出了不同的解决方法,但是没有一个解决方案与之媲美 。
在这个版本中,Jboot 还新增了对注解 @PostConstruct 注解的支持,优化了门户官网代码,详情请查看 changelist。
Jboot 开发文档:
https://jbootprojects.gitee.io/docs/
同时,Jboot 官方也推出了收费的企业级开发框架 JbootAdmin ,关于 JbootAdmin 详情咨询海哥。
maven 依赖:
<dependency> <groupId>io.jboot</groupId> <artifactId>jboot</artifactId> <version>3.9.4</version> </dependency>
Hello World:
@RequestMapping("/") public class HelloworldController extends JbootController { public void index(){ renderText("hello world"); } public static void main(String[] args){ JbootApplication.run(args); } }