Solon 已有120个生态扩展插件,此次更新主要为细节打磨:

  • 增加 solon.serialization,做为序列化的基础插件

  • 优化 所有Json序列化插件,使之可方便定制类型序列化

    1. public class DemoApp {
    2. public static void main(String[] args){
    3. Solon.start(DemoApp.class, args, app->{
    4. initMvcJsonCustom();
    5. });
    6. }
    7. /**
    8. * 初始化json定制(需要在插件运行前定制)
    9. */
    10. private static void initMvcJsonCustom() {
    11. //通过转换器,做简单类型的定制
    12. SnackRenderFactory.global
    13. .addConvertor(Date.class, s -> s.getTime());
    14. SnackRenderFactory.global
    15. .addConvertor(LocalDate.class, s -> s.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
    16. SnackRenderFactory.global
    17. .addConvertor(LocalDateTime.class, s -> s.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")));
    18. //复杂的,可用原生编码接口
    19. //SnackRenderFactory.global.addEncoder(...)
    20. }
    21. }
    22. //每个适配插件都会有自己定制渲染工厂
    23. //solon.serialization.snack3:: SnackRenderFactory
    24. //solon.serialization.jackson:: JacksonRenderFactory
    25. //solon.serialization.gson:: GsonRenderFactory
    26. //solon.serialization.fastjson:: FastjsonRenderFactory
  • 调整 CloudLockService,lock 更名为 tryLock

    1. public class DemoService{
    2. public void demo(long userId, ...){
    3. if(CloudCleint.lock().tryLock("user_id" + userId)){
    4. //获取分布式锁成功
    5. //..做业务
    6. }else{
    7. //提示...
    8. }
    9. }
    10. }
  • 引入 redisx 框架做为 solon.cache.redis 和 solon.extend.sessionstate.redis 的客户端

  • 插件 aws-s3-solon-plugin,改为基于 rest api 适配

    1. //大小从7MB 变成了 2KB:)
    2. CloudClient.file().put("user_1", new Media("{name:'noear'}"));
  • 插件 weed3-solon-plugin,weed3 升级为 3.4.1

  • 插件 mybatis-solon-plugin 增加 SqlSessionFactoryBuilder 可定制的能力

    1. public class DemoApp {
    2. public static void main(String[] args) {
    3. new SolonBuilder()
    4. .onPluginLoadEnd(e -> {
    5. //重新定义 SqlSessionFactoryBuilder(没有需要,最好别动它...)
    6. Aop.wrapAndPut(SqlSessionFactoryBuilder.class, new SqlSessionFactoryBuilderImpl());
    7. })
    8. .start(DemoApp.class, args);
    9. }
    10. }

关于 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

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

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

Hello world:

  1. //Handler 模式:
  2. public class App{
  3. public static void main(String[] args){
  4. SolonApp app = Solon.start(App.class,args);
  5. app.get("/",(c)->c.output("Hello world!"));
  6. }
  7. }
  8. //Controller 模式:(mvc or rest-api)
  9. @Controller
  10. public class App{
  11. public static void main(String[] args){
  12. Solon.start(App.class,args);
  13. }
  14. //限定 put & post 方法类型
  15. @Put
  16. @Post
  17. @Mapping("/")
  18. public String hello(String name){
  19. return "Hello " + name;
  20. }
  21. }
  22. //Remoting 模式:(rpc)
  23. @Mapping("/")
  24. @Remoting
  25. public class App implements HelloService{
  26. public static void main(String[] args){
  27. Solon.start(App.class,args);
  28. }
  29. @Override
  30. public String hello(){
  31. return "Hello world!";
  32. }
  33. }

附:项目地址

附:入门示例

轻量级 Java 基础开发框架,Solon & Solon Cloud 1.5.48 发布的更多相关文章

  1. 轻量级 Java 基础开发框架,Solon & Solon Cloud 1.5.40 发布

    Solon 已有120个生态扩展插件,此次版本以细节打磨为主: 增加 mybatisplus-solon-plugin 插件 //至此,Solon 已完成国内外主流的5个ORM框架插件适配 插件 so ...

  2. 轻量级 Java 基础开发框架,Solon & Solon Cloud 1.5.52 发布

    Solon 已有120个生态扩展插件,此次更新主要为细节打磨: 插件 mybatis-solon-plugin 增加 mappers 单行配置支持 之前的多行模式: mybatis.db1: type ...

  3. Solon & Solon Cloud 1.5.62 发布,轻量级 Java 基础开发框架

    Solon 已有120个生态扩展插件,此次更新主要为细节打磨,且对k8s和docker-compose更友好: 1.插件 solon.coud ,事件总线增加支持本地同主题多订阅模式(以支持同服务内, ...

  4. Solon 1.5.29 发布,轻量级 Java 基础开发框架

    本次版本主要变化: 增加 captcha-solon-plugin 插件(提供滑块验证与选文字验证能力) 插件 sa-token-solon-plugin,升级 sa-token 为 1.26.0 插 ...

  5. 轻量级Java EE开发框架设计系统应用架构

    首先来说一下Java EE 概述 其中常说的三大框架即是:ssh Spring:功能强大的组件粘合济,能够将你的所有的java功能模块用配置文件的方式组合起来(还让你感觉不到spring的存在)成为一 ...

  6. Java基础知识强化之IO流笔记48:IO流练习之 复制单级文件夹案例

    1. 复制单级文件夹     数据源:e:\\demo     目的地:e:\\test 分析: A:封装目录 B:获取该目录下的所有文本的File数组 C:遍历该File数组,得到每一个File对象 ...

  7. Java基础知识强化之集合框架笔记48:产生10个1~20之间的随机数(要求:随机数不能重复) 简洁版

    1. 编写一个程序,获取10个1至20的随机数,要求随机数不能重复. 分析:  A: 创建随机数对象  B: 创建一个HashSet集合  C: 判断集合的长度是不是小于10    是:就创建一个随机 ...

  8. Solon,一个轻量级的应用开发框架。发布官网喽!!!

    官网发布: https://solon.noear.org/ 项目简介: Solon,是一个轻量级的应用开发框架.更快.更小.更自由! 支持JDK8+:主框架0.1Mb:组合不同的插件应对不同需求:方 ...

  9. Java 超新星开源项目 Solon v1.10.10 发布

    一个更现代感的 Java 应用开发框架:更快.更小.更自由.主框架仅 0.1 MB.Helloworld: @Controller public class App { public static v ...

随机推荐

  1. 2021年哪个低代码平台更值得关注?T媒体盘点国内主流低代码厂商

    2020年圣诞前夜,国内知名创投科技媒体T媒体旗下的T研究发布了2020中国低代码平台指数测评报告.报告除了对国内低代码行业现状进行总结外,还对主流低代码厂商的市场渗透和曝光进行测评. 报告认为,低代 ...

  2. JDK1.8源码(八)——java.lang.ThreadLocal类

    https://www.cnblogs.com/xdd666/p/14734047.html ThreadLocal https://www.cnblogs.com/yanfei1819/p/1473 ...

  3. Docker之Alpine制作jre镜像(瘦身)+自定义镜像上传阿里云

    alpine制作jdk镜像 alpine Linux简介 1.Alpine Linux是一个轻型Linux发行版,它不同于通常的Linux发行版,Alpine采用了musl libc 和 BusyBo ...

  4. 简单内存池的C实现

    1. 序言 对于程序开发人员来说,会经常听到这种"池"的概念,例如"进程池","线程池","内存池"等,虽然很多时没有吃 ...

  5. Asp.Net 5上传文件 (Core API方式)

    参考文档 首先在控制器中注入IWebHostEnvironment IWebHostEnvironment提供有关正在运行应用程序的Web托管环境的信息. 属于命名空间Microsoft.AspNet ...

  6. k8s资源管理(基础操作)

    1. 基础 本文实操基于k8s 1.22.1 # 可以查看资源分配情况 kubectl describe node # 全局资源情况查看 kubectl api-resources 1.1 apply ...

  7. Apache网页优化

    目录: 一.Apache网页优化概述 二.网页压缩 三.网页缓存 四.隐藏版本信息 五.Apache防盗链 一.Apache网页优化概述 在企业中,部署Apache后只采用默认的配置参数,会引发网站很 ...

  8. 解决wampserver无法启动问题

    如果无法启动,找不到原因.直接依次点击打开到:控制面板--管理工具--事件查看器--windows日志--应用程序,查看对应进程错误信息对症下药即可. 我这个错误就是8099端口错误,运行cmd命令, ...

  9. Shell系列(28)- 条件判断之字符串判断

    字符串判断 $变量时要用双引号引起来,即"$变量" 测试选项 作用 -z 字符串 判断字符串是否为空(为空返回真) -n 字符串 判断字符串是否为非空(非空返回真) 字符串1 == ...

  10. Spotlight监控工具的使用

    Spotlight下载地址:http://spotlight-on-unix.software.informer.com/download/#downloading Spotlight是Quest公司 ...