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

相关推荐
程序员cxuan6 小时前
速度太快了!本地可以跑 DeepSeek-V4-Flash 了
人工智能·后端·程序员
阿祖zu7 小时前
芝士就是力量!开源私有化部署与 GitHub 双向同步的个人知识笔记 App
前端·后端·ios
松仔log7 小时前
Java中级——组合和继承
android·java·开发语言
不才不才不不才7 小时前
Spring 源码系列(16): doDispatch 全流程——一次请求的主干链路
java·后端·spring
IT_陈寒7 小时前
SpringBoot自动配置失效?这个隐藏配置坑了我一整晚
前端·人工智能·后端
搜狐技术产品小编20238 小时前
告别“黑盒”与误判:如何用“多智能体对抗辩论”重构内容安全审核系统
后端·多agent
snow@li8 小时前
HikariCP:高性能数据库连接池全景深入梳理
java·数据库
DantyWei8 小时前
controller注册及调用时机
后端
AlloyTeamZy8 小时前
我发现,一个人做小游戏最难的,根本不是写代码
前端·人工智能·程序员
edwarddamon8 小时前
Spring Cloud 配置热更新与 Bean 代理机制梳理
java·后端