Solon 是一个轻量的Java基础开发框架。强调,克制 + 简洁 + 开放的原则;力求,更小、更快、更自由的体验。支持:RPC、REST API、MVC、Job、Micro service、WebSocket、Socket 等多种开发模式。短小而精悍!

Solon Cloud 是一系列的接口标准和配置规范,算是 Solon 的分布式开发套件方案。

快速了解Solon的材料:

《Solon 特性简集,相较于 Springboot 有什么区别?》

《Solon Cloud 分布式服务开发套件清单,感觉受与 Spring Cloud 的不同》

《Solon 的想法与架构笔记》

《Solon 生态插件清单》,目前已有100多个生态插件

《Solon 框架入门系列》

《Solon Aop 特色开发系列》

所谓更小:

内核0.1m,最小的接口开发单位0.2m(相较于 Dubbo、Springboot 的依赖包,小到可以乎略不计)

所谓更快:

本机http helloworld测试,Qps可达12万之多。可参考:《helloworld_wrk_test

所谓更自由:(代码操控自由)

// 除了注解模式之外,还可以按需手动
//
//手动获取配置(Props 为 Properties 增强版)
Props db = Solon.cfg().getProp("db"); //手动获取容器里的Bean
UserService userService = Aop.get(UserService.class); //手动监听http post请求
Solon.global().post("/user/update", x-> userService.updateById(x.paramMap())); //手动添加个RPC服务
Solon.global().add("/rpc/", HelloService.class, true); //手动获取一个RPC服务消费端
HelloService helloService = Nami.builder().create(HelloService.class); //手动为容器添加组件
Aop.wrapAndPut(DemoService.class);

本次版本主要变化:

1、部分插件名调整

原插件 升级为新插件 原因说明
solon.extend.auth solon.auth 地位升级
solon.extend.data solon.data 地位升级
solon.extend.validation solon.validation 地位升级
solon.extend.jetty.jsp solon.boot.jetty.add.jsp 增加与 solon.boot.jetty 关联性
solon.extend.jetty.websocket solon.boot.jetty.add.websocket 增加与 solon.boot.jetty 关联性
solon.extend.undertow.jsp solon.boot.undertow.add.jsp 增加与 solon.boot.undertow 关联性

2、部分包名调整

原包名 升级为新包名 原因说明
solon.extend.auth.* solon.auth.* 地位升级
solon.extend.validation.* solon.validation.* 地位升级
solon.extend.data.* solon.data.* 地位升级
solon.core.tran.* solon.data.tran.* 转到 solon.data 统一维护
solon.core.cache.* solon.data.cache.* 转到 solon.data 统一维护

3、solon.validation 插件其它调整与升级

  • 改动 ValidatorManager,由单例模式改为静态模式;并对接口做了优化
  • 调整 ValidatorManager::onFailure 更名为 ValidatorManager::setFailureHandler
  • 调整 NoRepeatLock 更名为 NoRepeatSubmitChecker(与其它检测器统一为Checker的概念)

4、solon.validation 插件增加实体验证支持(也可切换为jsr303)

示例:

@Valid
@Mapping("/demo2/valid")
@Controller
public class ValidController {
@NoRepeatSubmit
@Mapping("nrs")
public String nrs() {
return "OK";
} @NotBlank({"val1", "val2"})
@Mapping("nblank")
public String nblank(String val1, String val2) {
return "OK";
} @Mapping("bean")
public String bean(@Validated ValidModel model) {
return "OK";
}
} @Data
public class ValidModel {
@NotBlank(message = "手机号不能为空")
private String mobile; @NotBlank(message = "密码不能为空")
private String password;
}

5、solon.auth 插件增加模板标签支持

  • 调整 各模板引擎内部接口名称,显得更统一些
  • 模板 beetl 增加权限认证标签支持
  • 模板 enjoy 增加权限认证标签支持
  • 模板 freemarker 增加权限认证标签支持
  • 模板 jsp 增加权限认证标签支持
  • 模板 thymeleaf 增加权限认证标签支持
  • 模板 velocity 增加权限认证标签支持

beetl 示例:

<#authPermissions name="user:del">
我有user:del权限
</#authPermissions> <#authRoles name="admin">
我有admin角色
</#authRoles>

enjoy 示例:

#authPermissions("user:del")
我有user:del权限
#end #authRoles("admin")
我有admin角色
#end

freemarker 示例:

<@authPermissions name="user:del">
我有user:del权限
</@authPermissions> <@authRoles name="admin">
我有admin角色
</@authRoles>

6、solon core 的事务与缓存定义接口迁到:solon.data 插件

  • 移动 org.noear.solon.core.cache.CacheService 到 org.noear.solon.data.cache.CacheService
  • 移动 org.noear.solon.core.tran.TranExecutor 到 org.noear.solon.data.tran.TranExecutor
  • 移动 org.noear.solon.core.tran.TranUtils 到 org.noear.solon.data.tran.TranUtils

7、增加 httputils-solon-plugin 插件

这是基于Solon Cloud 注册发现服务的 HttpUtils 工具,为Rpc客户端方案外提供一个便宜的服务调用方式。

非常适合k8s和传统注册发现服务等不同场景。示例:

String rst = HttpUtils.http("helloservice", "/hello").data("name","noer").post();
System.out.println(rst);

8、请求参数自动转换日期的格式增加到9种

"yyyy-MM-dd'T'HH:mm:ss.SSSXXX"
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
"yyyy-MM-dd HH:mm:ss,SSS"
"yyyy-MM-dd HH:mm:ss.SSS"
"yyyyMMddHHmmssSSSZ"
"yyyy-MM-dd'T'HH:mm:ss"
"yyyy-MM-dd HH:mm:ss"
"yyyy-MM-dd"
"HH:mm:ss"

9、其它

  • 修复加载配置时,值为null会出错的问题
  • 升级snack3,增加更多的时间处理格式
  • 增加更多的时间处理格式(与snack3同)
  • enjoy 模式,分离 debug 引擎的实例
  • Validator 接口的原函数 validate 更名为 validateOfContext;并增加 validateOfEntity 函数定义(支持实体验证)
  • solon.extend.jsr303 插件不再自动注入到容器(Solon Validation,已支持实体验证)

附:项目地址

附:入门示例

对标 Spring Boot & Cloud ,轻量框架 Solon 1.5.2 重要发布的更多相关文章

  1. Spring Boot & Cloud 轻量替代框架 Solon 1.3.37 发布

    Solon 是一个微型的Java开发框架.强调,克制 + 简洁 + 开放的原则:力求,更小.更快.更自由的体验.支持:RPC.REST API.MVC.Micro service.WebSocket. ...

  2. Spring Boot & Cloud 轻量替代框架 Solon 1.4.1 发布

    Solon 是一个微型的Java开发框架.强调,克制 + 简洁 + 开放的原则:力求,更小.更快.更自由的体验.支持:RPC.REST API.MVC.Micro service.WebSocket. ...

  3. Spring Boot & Cloud 轻量替代框架 Solon 1.3.33 发布

    Solon 是一个微型的Java开发框架.强调,克制 + 简洁 + 开放的原则:力求,更小.更快.更自由的体验.支持:RPC.REST API.MVC.Micro service.WebSocket. ...

  4. Spring Boot & Cloud 轻量替代框架 Solon 1.3.35 发布

    Solon 是一个微型的Java开发框架.强调,克制 + 简洁 + 开放的原则:力求,更小.更快.更自由的体验.支持:RPC.REST API.MVC.Micro service.WebSocket. ...

  5. 对标 Spring Boot & Cloud ,轻量框架 Solon 1.4.8 发布

    Solon 是一个轻量的Java基础开发框架.强调,克制 + 简洁 + 开放的原则:力求,更小.更快.更自由的体验.支持:RPC.REST API.MVC.Job.Micro service.WebS ...

  6. 对标 Spring Boot & Cloud ,轻量框架 Solon 1.4.12 发布

    Solon 是一个轻量的Java基础开发框架.强调,克制 + 简洁 + 开放的原则:力求,更小.更快.更自由的体验.支持:RPC.REST API.MVC.Job.Micro service.WebS ...

  7. 对标 Spring Boot & Cloud ,轻量框架 Solon 1.4.14 发布

    Solon 是一个轻量的Java基础开发框架.强调,克制 + 简洁 + 开放的原则:力求,更小.更快.更自由的体验.支持:RPC.REST API.MVC.Job.Micro service.WebS ...

  8. 对标 Spring Boot & Cloud ,轻量框架 Solon 1.5.8 发布

    Solon 是一个轻量的Java基础开发框架.强调,克制 + 简洁 + 开放的原则:力求,更小.更快.更自由的体验.支持:RPC.REST API.MVC.Job.Micro service.WebS ...

  9. spring boot / cloud (三) 集成springfox-swagger2构建在线API文档

    spring boot / cloud (三) 集成springfox-swagger2构建在线API文档 前言 不能同步更新API文档会有什么问题? 理想情况下,为所开发的服务编写接口文档,能提高与 ...

随机推荐

  1. 解决在Vim中鼠标右键不能粘贴问题

    最近维护一台服务器,使用putty登录后,用vim时,鼠标右键不能 粘贴而是进入了visual模式.网上查找一番找到了解决方法: 方 法一:在普通模式下键入" :set mouse-=a&q ...

  2. WinDBG 调试命令大全

    转载收藏于:http://www.cnblogs.com/kekec/archive/2012/12/02/2798020.html  #调试命令窗口 ++++++++++++++++++++++++ ...

  3. Python 爬虫之Scrapy框架

    Scrapy框架架构 Scrapy框架介绍: 写一个爬虫,需要做很多的事情.比如:发送网络请求.数据解析.数据存储.反反爬虫机制(更换ip代理.设置请求头等).异步请求等.这些工作如果每次都要自己从零 ...

  4. web技术培训(二)-Flask后端框架初识

    web网站发展至今,特别是服务器端,涉及到的知识.内容,非常广泛.这对程序员的要求会越来越高.如果采用成熟,稳健的框架,那么一些基础的工作,比如,安全性,数据流控制等都可以让框架来处理,那么程序开发人 ...

  5. MarkDown写ppt

    首先给你的VSCode安装插件 MarkDown语法 例子 --- marp: true paginate: true theme: default class: - lead - invert si ...

  6. Nginx如何配置Http、Https、WS、WSS?

    写在前面 当今互联网领域,Nginx是使用最多的代理服务器之一,很多大厂在自己的业务系统中都是用了Nginx作为代理服务器.所以,我们有必要了解下Nginx对于Http.Https.WS.WSS的各项 ...

  7. js--吐血总结最近遇到的变态表单校验---element+原生+jq+easyUI(前端职业生涯见过的最烦的校验)

    最近写了无数各种形式的表单,记录下奇奇怪怪的校验规则~ 一:首先是element自带的rules校验规则: element作为常用框架,自带rules属性简单易懂,官方文档一目了然,不再赘述,应付常用 ...

  8. Pytest自动化测试-简易入门教程(01)

    我们今天主讲的内容,就是测试框架Pytest,讲到这个测试框架对于没有做过Web自动化的伙伴来说,会觉得这个东西是陌生的,那么到底什么是框架呢?什么又是自动化呢?自动化为什么又要用框架呢? 难道我学自 ...

  9. 5.配置IP

    静态IP配置 1.NAT模式设置 首先设置虚拟机中NAT模式的选项,打开VMware,点击"编辑"下的"虚拟网络编辑器",设置NAT参数 注意: VMware ...

  10. vue常见错误

    错误集锦 错误一 错误二 原因是写太多的import,修改呈如下方式 错误三 源码如下 原因是没有在return后面添加值 应该为 return false