Spring Boot 轻量替代框架 Solon 1.3.18 发布

来源: 投稿
作者: 刘西东
2021-04-01

Solon 是一个微型的Java开发框架。项目从2018年启动以来,参考过大量前人作品;历时两年,4000多次的commit;内核保持0.1m的身材,超高的跑分,良好的使用体验。支持:RPC、REST API、MVC、WebSocket、Socket 等多种开发模式。

Solon 强调:克制 + 简洁 + 开放的原则;力求:更小、更快、更自由的体验。

替代?那有什么异同之处?

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

《Solon 的架构笔记》

所谓更小:

内核0.1m,最小开发单位0.2m(相比Dubbo、Springboot项目包,小到可以乎略不计)

所谓更快:

本机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);

本次版本主要变化:

1、增加 luffy-solon-plugin 组件,实现与动态语言混合执行能力

//
// file: resources/luffy/hello.js
//
let name = ctx.param("name");

if(!name){
    name = "world";
}

return `Hello ${name}!`;

// 浏览器打开: http://localhost:8080/hello.js
// Java调用:CallUtil.callFile("/hello.js", null);

目前已适配的动态语言

  • python
  • ruby
  • javascript
  • groovy
  • lua
  • graaljs

2、Solon cloud 增加云端黑白名单接口 CloudListService

//手动应用
//
if(CloudClient.list().inList("blacklist","ip","127.0.0.1")){
    //提示
}

//注解应用
@NotBlanklist
@Mapping("demo1")
public void demo1(){
   //业务处理
}

@Withelist
@Mapping("demo2")
public void demo2(){
  //业务处理
}

3、增加 solon.logging 的异常格式化支持

@Slf4j
public class DemoService{
  public void demo(){
    try{
        //业务处理
    }catch(Exception ex){
        log.error("{}\r\n{}", "error:", ex);
    }
  }
}

4、增加 solon.extend.sessionstate.jwt 组件通过 header 传输的支持

附:入门示例

展开阅读全文
15 收藏
分享
加载中
精彩评论
参与开源你不会,键盘喷人你最强
2021-04-03 16:28
1
举报
看来你们的运维不专业:)
2021-04-02 12:54
1
举报
那本就是运维人员的活,开发的就不抢啦。。。每个站点配置开发,还是挺好用的
2021-04-01 22:57
1
举报
nginx难用吗?
2021-04-01 22:10
1
举报
最新评论 (13)
github有的,不好意思! 你这货评论全靠猜嘛?我键盘侠? 开源项目需要再这里发一条吹牛的新闻吗? 大家不会去搜吗?
2021-04-05 20:40
0
回复
举报
麻烦写一门语言替代java! 你有什么资格替代springboot?
2021-04-02 12:47
0
回复
举报
参与开源你不会,键盘喷人你最强
2021-04-03 16:28
1
回复
举报
nginx那么难用,为啥没人出个nginx替代方案。
2021-04-01 20:22
0
回复
举报
nginx难用吗?
2021-04-01 22:10
1
回复
举报
nginx.conf的语法还不难懂?
2021-04-02 09:44
0
回复
举报
那本就是运维人员的活,开发的就不抢啦。。。每个站点配置开发,还是挺好用的
2021-04-01 22:57
1
回复
举报
运维人员本身会配置nginx吗?! 还不是开发全部配好然后手把手教他们的!
2021-04-02 09:58
0
回复
举报
看来你们的运维不专业:)
2021-04-02 12:54
1
回复
举报
有前途,我已开始入坑玩玩
2021-04-01 17:37
0
回复
举报
赞呀。。。欢迎一起跳泥坑
2021-04-01 18:12
0
回复
举报
敏感肌可以用吗
2021-04-01 14:59
0
回复
举报
呃,替代?
2021-04-01 14:40
0
回复
举报
更多评论
13 评论
15 收藏
分享
返回顶部
顶部