那个号称"对标 Spring"的国产框架 Solon,到底行不行?

关注我的公众号:【编程朝花夕拾】,可获取首发内容。

01 引言

SpringBoot借助Spring生态占据了Java开发的半壁江山。面试的时候,可能总会碰到"SpringBoot为什么启动慢?"、"怎么提高SpringBoot的并发"等。既然被问,总会存在类似的问题。

今天发现一款国产的开元框架,号称是新一代Java 企业级应用开发框架,以快速、小巧、简洁著称:Solon。

02 简介

Solon 框架由杭州无耳科技有限公司(下属 Noear 团队)开发并开源。是新一代,Java 企业级应用开发框架。从零开始构建,有自主的标准规范与开放生态。近40万行代码。

  • 追求: 快速、小巧、简洁
  • 提倡: 克制、高效、开放

主要特性:

  • 更高的计算性价比:并发高 700%(techempower);内存省 50%
  • 更快的开发效率:代码少;入门简单;启动快 10倍(调试快)
  • 更好的生产与部署体验:打包小 90%
  • 更大的兼容范围:非 java-ee 架构;同时支持 java8 ~ java25,graalvm native image

官网地址:solon.noear.org/article/lea...

03 最佳实践

3.1 安装插件

习惯了SpringBoot的脚手架,我们也试试Solon的脚手架,需要我们安装插件。

插件地址:plugins.jetbrains.com/plugin/2138...

安装完成之后,

这就可以和SpringBoot一样,创建Moudle了。

搭建Web项目需要选择Web的脚手架。

3.2 引入依赖

选择好脚手架,依赖就会自动引入:

xml 复制代码
<!-- Solon Web Servlet -->
<dependency>
    <groupId>org.noear</groupId>
    <artifactId>solon-lib</artifactId>
</dependency>

<dependency>
    <groupId>org.noear</groupId>
    <artifactId>solon-server-jetty</artifactId>
</dependency>

或者直接引入

xml 复制代码
<!-- Web 快速开发集成包(含 solon-core + 一个 HTTP 服务器) -->
<dependency>
    <groupId>org.noear</groupId>
    <artifactId>solon-web</artifactId>
</dependency>

3.3 控制层

启动类会自动生成:

java 复制代码
@SolonMain
public class App {
    public static void main(String[] args) {
        Solon.start(App.class, args);
    }
}

和SpringBoot启动类非常类似。

java 复制代码
@Controller
public class FooController {

    @Inject
    private UserService userService;

    @Get
    @Mapping("/hello")
    public String hello() {
        return "hello Solon";
    }

    @Get
    @Mapping("/getUser")
    public User getUser() {
        return userService.getUser();
    }

    @Get
    @Mapping("/path/{random}")
    public String getPath(@Path("random") String random) {
        return "path: " + random;
    }
}

调用服务通过@Inject注解注入服务。

3.4 服务层

java 复制代码
public interface UserService {
    User getUser();
}

// -------------------------------------
    
@Component
public class UserServiceImpl implements UserService {
    @Override
    public User getUser() {
        return new User(new Random().nextLong(), "ws", "developer", 18   );
    }
}

服务层通过@Component标记

3.5 测试

启动确实很快:

整体感觉还是不错的,老铁们,你们觉得呢?

04 小结

以上的demo只是简单的Web测试,Solon的生态还是很完全的,还有很多,感兴趣的可以去试试。

相关推荐
yz_aiks3 小时前
Spring AI 2.1 ChatMemory 已过时用什么替代:迁移到 Session Memory 实战(JDBC 存储与会话压缩)
java·spring boot·大模型·ai agent·spring ai
金銀銅鐵3 小时前
[Java] 用 GUI 展示 EnumMap 增删键值对时的内部变化
java·后端·ai编程
学长毕设3 小时前
基于SpringBoot的上门洗车服务系统设计与实现
java·spring boot·后端
jason成都3 小时前
RTKLIB-Java 多基线联合RTK:FIX率从0%到91.5%的三层根因修复
java·gnss·rtklib·rtklib_java
鱼宵3 小时前
Stream 终端操作一次讲透:collect、count、reduce 怎么选
java·stream·终端操作
白山编程大哥3 小时前
Java 后端如何优雅地把 List 集合返回给前端
java·前端·list
Linux运维技术栈4 小时前
CVE-2026-91403 高危漏洞修复:Rocky Linux 9 多版本 JDK 环境清理实操
java·linux·运维
On The Road :4 小时前
Java 多线程详解:从入门到线程安全
java·python·安全
Shaoshing4 小时前
LeetCode100 49. 字母异位词分组
java·算法
划破黑暗的第一缕曙光5 小时前
[C++]:5.STL:string(2)
java·c++·redis