java运行包精简探索(一)

背景

  • 由于工作内容的关系,之前一直使用jdk8,没有升级到更高版本。对新特性也只是粗略的看过一眼,没有深入探究过。
  • 最近由于某些原因,需要做一个自带运行环境的程序。由于各种原因,选定了java和python作为备选语言,但是java由于jre的臃肿(100M+)以及spring boot的日渐臃肿(helloworld 15M),需要在这两方面进行size的缩减。

    一、框架选型

  • spring boot写一个helloworld项目居然已经达到了15M,虽然写代码是方便了但是size确实是有点大了,而且还没有添加orm框架之类的必备框架。

    初识 solon

    • 在百度搜索 "java 开发框架 轻量" 等关键词,找到2个看起来比较不错的框架备选:solon jfinal

      • 官方介绍是:
      支持jdk8+;主框架0.1mb;组合不同的插件应对不同需求;方便定制;快速开发。
      
    • 0.1M ,好像有点意思,继续了解

    • 进一步了解后,发现2个框架都是国人开发的,相对来说 jfinal的关注度、文档完成度、qq群人数都超过solon,但是solon的更新非常活跃。

    • 两边QQ群都提交了入群申请,solon群很快就加上了。群里只有100多号人。

DEMO搭建

  • 进群先拜码头,然后提出了自己的需求(jar包要小)。群里各路大神都很热情的告诉我,要精简,选solon就对了,因为作者是个一行代码都舍不得多放的人。

  • 群主和热心的群员们甚至帮我推荐了各种工具及demo。

  • 在大家的热心帮助下,我很快完成了我的demo环境搭建:
    solon(core) solon-api(http服务支持) + weed3(orm框架) +jlhttp(服务容器) +h2(嵌入式数据库)
    写了增删改查接口进行测试,压缩包4.2M(后续在群主的帮助下,剔除了yml支持,再次缩减到3.9M)


    依赖关系图
3.9M
  • 尝试写了一些简单的增删改查api,对spring工程师还是很友好的,某些封装甚至比spring boot还要更符合个人习惯


    参数接收 数据库查询等
    • 群主以一己之力完成了整个框架 以及整个生态的开发,太了不起了,膜拜。
  • 这些组件基本上已经足够基础使用了。
  • 至此,java框架选型告一段落。
solon传送门 :https://gitee.com/noear/solon/
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容