那个号称"对标 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的生态还是很完全的,还有很多,感兴趣的可以去试试。

相关推荐
Lethehong1 小时前
飞算Java:从需求梳理到风险闭环,搭建云盾企业信息安全与权限管理平台
java·开发语言
霸道流氓气质1 小时前
SpringBoot中使用字典驱动的动态路由示例
java·spring boot·后端
学计算机的计算基1 小时前
操作系统八股文:进程与线程全面梳理(附调度算法+IPC+锁机制)
java·算法
用户69371750013841 小时前
Kimi K3 综合能力处于全球第一梯队
android·前端·后端
wuqingshun3141591 小时前
请描述简单工厂模式的工作原理
java·简单工厂模式
anno2 小时前
Agent 新手 Skill 优先级指南:从第一套必装工作流,到专业能力补全
前端·后端
大不点wow2 小时前
Spring 中 @Bean、@Component 与 @Configuration 的作用及底层逻辑
java·spring
anno2 小时前
别再把文档“一刀切”:用 LangChain.js 做好 RAG 的第一公里
前端·后端
用户713874229002 小时前
claude_rules 深度解析:Claude Code 的模块化路径作用域规则
后端