Java之所以是广泛使用的编程语言,不仅仅因为其具有跨平台性、面向对象、可靠性,还有很重要的一点是强大的生态系统,spring家族的一系列框架,对Java的崛起有着不可忽视的作用。
学Java的不可能不知道Spring,今天给大家介绍一个号称springboot的轻量替代框架-Solon,这个框架还是国人开发的,真是一个单挑spring的男人。
认识Solon
Solon是一个参考了Spring Boot和Javalin的设计而创建的框架。它吸取了这两者的优点并避免了繁重的设计,使得它能够支持HTTP、WebSocket和Socket等三种通信信号接入。
Solon只需要2MB的大小就可以支撑完整的MVC开发,并且在启动方面只需要0.1秒的时间。相比之下,一个普通的Spring Boot MVC项目通常需要起步20MB以上的内存占用,并且启动时间要超过3秒,同时其QPS性能也较弱。
官方介绍:
相比springboot,启动快 5 ~ 10 倍;qps 高 2~ 3 倍;运行时内存节省 1/3 ~ 1/2;打包可以缩到 1/2 ~ 1/10;同时支持 jdk8, jdk11, jdk17, jdk20, graalvm native。
- 克制、简洁、高效、开放、生态
- 支持 JDK8、JDK11、JDK17、JDK20
- Http、WebSocket、Socket 三种信号统一的开发体验(俗称:三源合一)
- 支持“注解”与“手动”两种模式,按需自由操控
- Not Servlet,可以适配任何基础通讯框架(最小 0.3m 运行rpc架构)
- 独特的 IOC/AOP 容器设计。不会因为插件变多而启动变很慢
- 支持 Web、Data、Job、Remoting、Cloud 等任何开发场景
- 兼顾 Handler + Context 和 Listener + Message 两种架构模式
- 强调插件式扩展,可扩展可切换;适应不同的应用场景
- 支持 GraalVm Native 打包
- 允许业务插件“热插”、“热拔”、“热管理”
solon生态架构图
官网:https://solon.noear.org/
项目地址:https://gitee.com/noear/solon
上手Solon
web开发的模式和springboot基本一致,但是注解和springboot略有区别,具体区别可以看它的官方文档。
一个重要的区别是,Solon 不是基于 Servlet 的开发框架,虽然使用起来与 Springboot 相似的体验,但内部使用 Context 包装请求上下文(底层为:Context + Handler 架构)。
创建Maven项目,引入依赖
< parent >
< groupId >org.noear< /groupId >
< artifactId >solon-parent< /artifactId >
< version >2.3.6< /version >
< /parent >
< dependencies >
< dependency >
< groupId >org.noear< /groupId >
< artifactId >solon-web< /artifactId >
< /dependency >
< /dependencies >
编写启动类代码
@SolonMain
public class App{
public static void main(String[] args){
long start = System.currentTimeMillis();
Solon.start(App.class, args);
long end = System.currentTimeMillis();
System.out.println("启动耗时:" + (end - start) + "ms");
}
}
编写Controller
@Controller
public class DemoController {
@Mapping("/hello")
public String hello(String name){
return "Hello " + name;
}
}
运行,测试
可以看出来,启动还是非常非常快的
打包
啊?只有4kb?
有点儿惊人,为此,我专门去新建了个springboot项目,也是简单的一个接口,打包
好吧,这个项目也是4k,看来太简单的项目看不出来区别。等以后写新项目玩儿的时候再试试。
顺便测试了一下启动时间
启动时间确实还是 Solon 更快!
小结
再来看看Solon的官方文档,文档写的很详细,功能很齐全,Solon的生态虽然没有spring那么强大,但小型项目已经完全可以胜任。
感兴趣的小伙伴儿们快快用起来吧,对于自己的项目很适合,毕竟自己的服务器内存和空间比较小,同样的项目占用更小的空间和内存还是很香的!
-
JAVA
+关注
关注
19文章
2926浏览量
103566 -
开发
+关注
关注
0文章
353浏览量
40682 -
框架
+关注
关注
0文章
392浏览量
17182 -
SpringBoot
+关注
关注
0文章
172浏览量
131
发布评论请先 登录
相关推荐
介绍一种OpenAtom OpenHarmony轻量系统适配方案
![介绍一种OpenAtom OpenHarmony<b class='flag-5'>轻</b><b class='flag-5'>量</b>系统适配方案](https://file1.elecfans.com/web2/M00/C3/89/wKgaomXmdQ2API-MAAAONfnizq8510.png)
【入门】1 升级轻应用框架固件
Springboot整合netty框架实现终端、通讯板子(单片机)TCP/UDP通信案例
![<b class='flag-5'>Springboot</b>整合netty<b class='flag-5'>框架</b>实现终端、通讯板子(单片机)TCP/UDP通信案例](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
OpenHarmony轻量系统开发【1】初始OH
为什么建议你替换掉SpringBoot框架中的Tomcat?
Web框架的替代方案分享(上)
Web框架的替代方案分享(中)
Web框架的替代方案分享(下)
什么是 SpringBoot?
![什么是 <b class='flag-5'>SpringBoot</b>?](https://file1.elecfans.com/web2/M00/81/FF/wKgZomQvjQKARND_AADW0ILCMHE105.jpg)
Quarkus是SpringBoot的替代品吗?
![Quarkus是<b class='flag-5'>SpringBoot</b>的<b class='flag-5'>替代</b>品吗?](https://file1.elecfans.com/web2/M00/AF/34/wKgZomVNj-GAKiWcAAAJCmlZ5VY796.jpg)
评论