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

相关推荐
东风破_3 小时前
从输入 juejin.cn 到看到页面:DNS、Nginx、服务器集群与 CDN 到底在做什么?
后端·mysql
东风破_3 小时前
从 0 设计一个博客数据库:用户、头像与文章表应该怎么建?
后端·mysql
大鸡腿同学4 小时前
黄仁勋点透的 AI 真相:能实现你知道但做不到的,却实现不了你不知道的
后端
FfHUCisI4 小时前
Go 编译过程全景
开发语言·后端·golang
FfHUCisI4 小时前
Golang 语法分析与 AST:Parser 与 go/ast
开发语言·后端·golang
秋饼4 小时前
JDK 27 企业级 AI 服务落地实战:G1 默认、紧凑对象头、后量子 TLS 与 JFR 脱敏全解析
java·ai·技术分享·后端开发
卓怡学长5 小时前
w176基于SpringBoot的医院管理系统
java·spring boot·spring·maven·intellij-idea
lemon_sjdk5 小时前
ObjectProperty
java·开发语言·算法
hh9505 小时前
Agent Plan x DeepSeek Harness:Agent 供应链安全与第三方插件审计
java·开发语言·安全·agent plan·adg成都社区·adg社区
吴声子夜歌5 小时前
Java面试——HBase原理及应用
java·面试·hbase