一、开源项目简介 Solon,是一个轻量级的应用开发框架。更快、更小、更自由!二、功能概述 支持JDK8;主框架0。1Mb;组合不同的插件应对不同需求;方便定制;快速开发。克制、简洁、开放Http、WebSocket、Socket三种信号统一的开发体验(俗称:三源合一)支持注解与手动两种模式,按需自由操控NotServlet,可以适配任何基础通讯框架(所以:最小0。2Mb运行rpc架构)基于订阅模式的IOCAOP容器设计集合HandlerContext和ListenerMessage两种架构模式;强调插件式扩展;适应不同的应用场景插件可扩展可切换:启动插件,扩展插件,序列化插件,数据插件,会话状态插件,视图插件(可共存)等。。。支持Web、Job、Remoting、Cloud等开发场景支持GraalVMNative打包体验与SpringBoot相近,迁移成本低 一系列分布式开发的接口标准和配置规范,相当于DDD模式里的防腐层概念。是Solon的微服务架构模式开发解决方案。目前已适配了一系列的插件用于支持这一标准:《SolonCloud分布式服务开发套件清单,感觉受与SpringCloud的不同》 其中,Water项目是一站式支持SolonCloud系列标准的支撑平台。功能相当于:consulrabbitmqelkprometheusopenFaasquartz等等,并有机结合在一起。一直与Solon项目伴生成长。三、技术选型Helloworld:Handler模式:publicclassApp{publicstaticvoidmain(String〔〕args){SolonAppappSolon。start(App。class,args);app。get(,(c)c。output(Helloworld!));}}Controller模式:(mvcorrestapi)ControllerpublicclassApp{publicstaticvoidmain(String〔〕args){Solon。start(App。class,args);}限定put方法类型PutMapping()publicStringhello(Stringname){returnH}}Remoting模式:(rpc)Mapping()RemotingpublicclassAppimplementsHelloService{publicstaticvoidmain(String〔〕args){Solon。start(App。class,args);}OverridepublicStringhello(){returnHelloworld!;}}主框架及快速集成开发包:主框架 组件 说明 org。noear:solonparent 框架版本管理 org。noear:solon 主框架 org。noear:nami 伴生框架(做为solonremoting的客户端) org。noear:solonhat 文档框架快速集成开发包及相互关系 组件 说明 org。noear:solonlib 快速开发基础集成包 org。noear:solonapi 快速开发接口应用 org。noear:solonweb 快速开发WEB应用 org。noear:solonbeetlweb 快速开发WEB应用 org。noear:solonenjoyweb 快速开发WEB应用 org。noear:solonrpc 快速开发RPC应用 org。noear:soloncloud 快速开发微服务应用Solon启动处理顺序1。实例化Solon。global()2。初始化配置3。加载扩展文件夹4。扫描插件并排序5。运行initialize函数6。推送AppInitEndEvent〔事件〕7。运行插件8。推送PluginLoadEndEvent〔事件〕9。导入javabean(Import)a。扫描并加载javabeanb。推送BeanLoadEndEvent〔事件〕c。加载渲染印映关系d。执行Aop。beanLoaded函数e。推送AppLoadEndEvent〔事件〕f。结束更快、更小、更自由所谓更快: 本机Helloworld测试,Qps可达10万之多。 solon1。3。35 大小 QPS solon。boot。jlhttp(bio) 0。2m 4。7万左右 solon。boot。jetty(nio,支持servletapi) 1。9m 10。7万左右 solon。boot。undertow(nio,支持servletapi) 4。3m 11。3万左右 solon。boot。smarthttp(aio) 0。4m 12。4万左右 springboot2。3。3 大小 QPS springbootstartertomcat 16。1m 3。2万左右 springbootstarterjetty 16m 3。7万左右 springbootstarterundertow 16。8m 4。4万左右所谓更小: 内核0。1Mb,最小Web完整开发单位1Mb(相比Springboot项目包,小到可以乎略不计了)所谓更自由: 代码操控自由:除了注解模式之外,还可以按需手动。手动获取配置(Props为Properties增强版)PropsdbSolon。cfg()。getProp(db);手动获取容器里的BeanUserServiceuserServiceAop。get(UserService。class);手动监听httppost请求Solon。global()。post(userupdate,xuserService。updateById(x。paramMap()));手动添加个RPC服务Solon。global()。add(rpc,HelloService。class,true);手动获取一个RPC服务消费端HelloServicehelloServiceNami。builder()。create(HelloService。class);手动为容器添加组件Aop。wrapAndPut(DemoService。class); 框架选择自由: 可以用solonweb这样的快速开发集成包。也可以按项目需要选择不同的插件组装,比如:为非Solon项目添加solon。boot。jlhttp,0。2Mb即可让项目实现httpmvc支持。四、界面展示 项目启动以来,参考过大量前人的作品。尤其是Springboot和Javalin,吸取了诸多优点,且避开很多繁重的设计。历时多年,内核始终保持0。1Mb的身材,超高的跑分,良好而自由的使用体验。 强调:克制简洁开放的原则。 力求:更小、更快、更自由的体验。1、缘起统一的处理架构想法(俗称:三源合一) Http、Socket、WebSocket。不同的通讯信号,进行统一架构处理。。。。。。并且小巧。对于Socket和WebSocket,在原消息监听的模式之外增加了上下文处理模式。 关于Http信号提供者,Servlet或NoServlet都可以。如JlHttp(NoServlet)、Jetty(Servlet)、reactornetty。。。。。。2、关于应用内在的启动过程(即:应用的生命周期) 串行的处理过程(含四个事件扩展点两个函数扩展点),代码直接、没有什么模式。易明 3、请求的处理过程 4、IocAop内部结构 5、现有家簇成员图谱 五、开源协议 使用Apache2。0开源协议六、源码地址 私信回复:应用开发框架 或访问一飞开源:https:code。exmay。com