zoukankan      html  css  js  c++  java
  • 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);
    

    附:项目地址

    附:入门示例

  • 相关阅读:
    WCF和SOA的简介
    .NET 反射应用
    ASP.NET---如何使用web api创建web服务
    获得N位数字字母随机组合
    git的初步使用
    js贪吃蛇
    python多线程
    2013-12-13
    2012-12-12
    2013-12-5
  • 原文地址:https://www.cnblogs.com/noear/p/15563383.html
Copyright © 2011-2022 走看看