内容简介:Jboot 是一个基于 JFinal、JFinal-Undertow、Dubbo、Seata、Sentinel、ShardingSphere、Nacos 等开发的微服务框架,帮助开发者降低微服务开发门槛。同时完美支持在 idea、eclipse 下多 maven 模块,对 java 代码、...
Jboot 是一个基于 JFinal、JFinal-Undertow、Dubbo、Seata、Sentinel、ShardingSphere、Nacos 等开发的微服务框架,帮助开发者降低微服务开发门槛。同时完美支持在 idea、eclipse 下多 maven 模块,对 java 代码、html、css、js 等资源文件进行热加载。爽爽开发,快乐生活。
到目前为止,Jboot 已经开源超过了 4 年的时间,迭代了 160+ 个版本,已经被超过 1000+ 公司在使用,其中包含了多个知名的上市公司。
Jboot V3.6.9 主要增强 Jboot 和前端 Json 的交互能力与渲染能力,提现在新增了 @JsonBody 注解用于接收前端的的 Json 数据和重构 ErrorRender ,在程序发生错误的时候能够给到前端友好的体验。
@JsonBody 的功能非常强大,比如,前端传入的 Json 内容如下:
[1,2,3]
如下的方法都可以正常接收数据:
public void method1(@JsonBody() int[] beans) {
System.out.println("beans--->" + beans);
renderText("ok");
}
public void method2(@JsonBody() String[] beans) {
System.out.println("beans--->" + beans);
renderText("ok");
}
public void method3(@JsonBody() List beans) {
System.out.println("beans--->" + beans);
renderText("ok");
}
public void method4(@JsonBody() Set beans) {
System.out.println("beans--->" + beans);
renderText("ok");
}
public void method5(@JsonBody() List<Integer> beans) {
System.out.println("beans--->" + beans);
renderText("ok");
}
public void method6(@JsonBody() Set<Integer> beans) {
System.out.println("beans--->" + beans);
renderText("ok");
}
public void method7(@JsonBody() List<String> beans) {
System.out.println("beans--->" + beans);
renderText("ok");
}
public void method8(@JsonBody() Set<String> beans) {
System.out.println("beans--->" + beans);
renderText("ok");
}
如果前端传入的是如下的 Json 数据:
{
"aaa":{
"bbb":[1,2,3]
}
}
只需要在 @JsonBody 添加对应的前缀即可,比如:
public void method1(@JsonBody("aaa.bbb") int[] beans) {
System.out.println("beans--->" + beans);
renderText("ok");
}
对 Java Bean 的支持也是非常友好的,比如 MyBean 的代码如下:
public class MyBean {
private String id;
private int age;
private BigInteger amount;
//getter setter
}
前端传入数据如下:
{
"aaa":{
"bbb":{
"id":"abc",
"age":17,
"amount":123
}
}
}
Controller 后端接收代码如下:
public void bean(@JsonBody("aaa.bbb") MyBean bean) {
System.out.println("bean--->" + bean);
renderText("ok");
}
或者,后端也可以直接使用一个 Map 来接收:
public void map(@JsonBody("aaa.bbb") Map map) {
System.out.println("map--->" + map);
renderText("ok");
}
使用 Map 接收也可以直接指定 Map 的数据类型:
public void map(@JsonBody("aaa.bbb") Map<String, String> map) {
System.out.println("map--->" + map);
renderText("ok");
}
倘若前端传入的是 Bean 数组,例如:
{
"aaa":{
"bbb":[
{
"id":"abc",
"age":17,
"amount":123
},
{
"id":"abc",
"age":17,
"amount":123
}
]
}
}
后端可以通过如下的方式进行接收数据,例如:
public void list(@JsonBody("aaa.bbb") List<MyBean> list) {
System.out.println("list--->" + list);
renderText("ok");
}
或者
public void set(@JsonBody("aaa.bbb") Set<MyBean beans) {
System.out.println("array--->" + beans);
renderText("ok");
}
或者
public void array(@JsonBody("aaa.bbb") MyBean[] beans) {
System.out.println("array--->" + beans);
renderText("ok");
}
@JsonBody 还有更多的支持,篇幅有限不再一一举例。
Jboot 主要有以下特征:
- 1、基于 JFinal 的 MVC + ORM 快速开发
- 2、基于 ShardingSphere + Seata 分布式事务 和 分库分表
- 3、基于 Dubbo 或 Motan 的 RPC 实现
- 4、基于 Sentinel 的分布式限流和降级
- 5、基于 Apollo 和 Nacos 的分布式配置中心
- 6、基于 EhCache 和 Redis 的分布式二级缓存
Jboot v3.6.9 更新内容如下:
- 新增:AttachmentManager 新增保存文件的若干方法
新增:Controller 参数新增 @JsonBody 的支持
新增:Http 工具模块添加更多的配置,方便在 fatjar 模式下能配置 https 相关证书
新增:ErrorRender 自动判断前端是否需要 json 渲染,当请求头是 application/json 的时候自动渲染错误的 json
优化:JbootSimpleApplication,使之代码更加简洁
优化:优化缓存拦截器对方法的 key 进行构建,提高性能
优化:默认为 JbootAccessTokenCache 添加 2 个小时的缓存时间
优化:LocalAttachmentContainer,默认保存文件的时候,对文件进行相同文件验证
优化:JwtManager 对 Jwt 解析出错或没有 Jwt 数据时,返回常量 map
优化:升级 JFinal、Undertow、Jackson 等到最新版本
开发文档:
https://jbootprojects.gitee.io/docs/
同时,Jboot 官方也推出了企业级开发框架 JbootAdmin,详情 https://jbootprojects.gitee.io/docs/jbootadmin/
maven 依赖:
<dependency>
<groupId>io.jboot</groupId>
<artifactId>jboot</artifactId>
<version>3.6.9</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);
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 一款功能强大的 PHP 开发框架
- XRay - 一款功能强大的安全评估工具
- Java 通用代码生成器光 2.1.0 信念 Beta2 版公布,三大变形功能群齐备,功能强大且灵活
- Lazydocker:一款功能强大的Docker管理套件
- THRecon:功能强大的网络威胁追踪侦察工具套件
- TeamCity 2.1 发布,功能强大的持续集成工具
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。