Solon 1.5.67 发布,增加 GraalVm Native 支持

Solon 已有120个生态扩展插件,此次更新主要为细节打磨:
  • 添加 solon.extend.graalvm 插件,用于适配 graalvm native image 模式
从此,solon 进入 graalvm native image 的世界。

感谢开发者:@馒头虫/瓢虫,近1个月时间的实验和适配。
  • 添加 detector-solon-plugin 插件,用于为健康检测,增加一批预设的探测器(可选:cpu,disk,jvm,memory,os,qps)
#提供了一批健康探测器(多个以,隔开)
#solon.health.detector: "cpu,os,qps"
solon.health.detector: "cpu"

输出示例:

#curl http://localhost:8080/healthz
{
  "status": "UP",
  "details": {
    "cpu": {
      "status": "UP",
      "details": {
        "ratio": 53.8
      }
    }
  }
}
  • 添加 solon.extend.hotdev 插件
为开发过程,修改java代自动重新加载,进行尝试。
  • 插件 solon.data 的缓存注解 tags 值,支持返回数据做为模板参数
public class UserService{
    /**
     * 获取用户信息
     */
    @Cache(tags = "user_${userId},company_bind_${.company_id}") //使用返回结果的字段:company_id
    public UserDo getUser(Long userId) throws SQLException {
        return userMapper.getUser(userId);
    }
    
    /**
     * 根据companyId批量解绑,同时清除与个企业相关的用户缓存
     * @return
     * @throws SQLException
     */
    @CacheRemove(tags = "company_bind_${companyId}")
    public int batchUnbindCompany(Long companyId) throws SQLException {
        return userMapper.batchUnbindByCompanyId(companyId);
    }
}
  • 插件 solon.i18n 国际化配置支持 key 级别的 默认配置(之前基于文件)
例:一个 key 在 message_cn_ZH 找不到配置,会到 message_cn 找,再没有 到 message 打
  • 插件 solon.i18n 增加过滤器,自动为上下文解析地区
  • 插件 water-solon-plugin 升级 water 2.3.2
  • 内核 @Bean 增加 index;@Component 增加 index。为特定类型增加位置支持
//例:为应用过滤器增加位置
//
@Component(index = 1)
public class AppFilterImpl implements Filter {
    @Override
    public void doFilter(Context ctx, FilterChain chain) throws Throwable {
        chain.doFilter(ctx);
    }
}
  • 内核 增加 solon.locale 配置,为系统提供默认地区配置

关于 Solon

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

关于 Solon Cloud

Solon Cloud 是一系列的接口标准和配置规范,相当于DDD模式里的防腐层概念。是 Solon 的微服务架构模式开发解决方案。

快速了解 Solon 的材料:

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

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

《Solon 的想法与架构笔记》

所谓更小:

内核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);

附:项目地址

附:入门示例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
有什么问题吗:INFO 2023-07-22 23:43:48.754 [-main][*][o.noear.solon.Solon]: App: Plugin starting INFO 2023-07-22 23:43:48.937 [-main][*][o.noear.solon.Solon]: Session: Local session state plugin is loaded INFO 2023-07-22 23:43:49.256 [-main][*][o.noear.solon.Solon]: View: load: FreemarkerRender INFO 2023-07-22 23:43:49.258 [-main][*][o.noear.solon.Solon]: View: load: org.noear.solon.view.freemarker.FreemarkerRender INFO 2023-07-22 23:43:49.258 [-main][*][o.noear.solon.Solon]: View: mapping: .ftl=FreemarkerRender INFO 2023-07-22 23:43:49.292 [-main][*][o.noear.solon.Solon]: App: Bean scanning INFO 2023-07-22 23:43:50.099 [-main][*][o.noear.solon.Solon]: View: mapping: .html=FreemarkerRender INFO 2023-07-22 23:43:50.995 [-main][*][o.noear.solon.Solon]: Connector:main: undertow: Started ServerConnector@{HTTP/1.1,[http/1.1]}{http://localhost:8080} INFO 2023-07-22 23:43:50.995 [-main][*][o.noear.solon.Solon]: Server:main: undertow: Started (undertow 2.2.24/2.3.8) @893ms INFO 2023-07-22 23:43:50.997 [-main][*][o.noear.solon.Solon]: View: mapping: @json=StringSerializerRender#SnackSerializer INFO 2023-07-22 23:43:50.997 [-main][*][o.noear.solon.Solon]: View: mapping: @type_json=StringSerializerRender#SnackSerializer INFO 2023-07-22 23:43:56.851 [-main][*][c.c.c.InitConfig]: nginxIsRun:false INFO 2023-07-22 23:43:56.899 [-main][*][c.c.c.InitConfig]: runCmd:nginx -c /home/nginxWebUI/nginx.conf INFO 2023-07-22 23:43:57.055 [-main][*][c.c.c.InitConfig]: _ _ __ __ __ __ ____ ____ ____ _ (_)____ _ __| | / /___ / /_ / / / // _/ / __ \ / __ `// // __ \ | |/_/| | /| / // _ \ / __ \ / / / / / / / / / // /_/ // // / / /_> < | |/ |/ // __// /_/ // /_/ /_/ / /_/ /_/ \__, //_//_/ /_//_/|_| |__/|__/ \___//_.___/ \____//___/ /____/
07-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值