《Solon》01-Solon 开始,信创国产化的 Java 生态型应用开发框架

Solon 入门指南

前言

Solon 🔥 是一款克制、简洁、高效、开放、生态的 Java 生态型应用开发框架。它在并发性能上提升了 300%;内存占用降低了 50%;启动速度提高了 10 倍;打包体积减少了 90%;并且兼容 Java 8 到 Java 23,可作为 Spring 的替代方案。

了解 Solon 框架的三类模块

在 Solon 框架中,主要有以下三类模块概念:

  1. 主框架模块:提供核心功能和基础架构。(内核:即 solon 模块)
  2. 扩展插件模块:通过插件机制扩展框架功能。(插件包:即普通模块,基于“内核”扩展实现某种特性 (“生态”频道就是介绍各种插件的使用)
  3. 应用模块:用户的实际业务应用。(快捷组合包:引入各种“插件包”组合而成,但自己没有代码(比如:solon-libsolon-web 等...)

体系概览

Solon 已经形成了一个比较开放的、比较丰富的生态。并不断完善和扩展中。

快速开始

环境准备

  • JDK:确保安装了 Java 8 或更高版本。
  • 构建工具:Maven 或 Gradle。

创建项目

使用 Maven 创建一个新的 Java 项目(在命令行中执行):

mvn archetype:generate -DgroupId=com.example -DartifactId=solon-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

引入依赖

pom.xml 文件中添加 Solon 依赖:

<!--
parent 用于继承父pom,这里继承了 solon-parent,这样就不用再配置一些基础的依赖
-->
<parent>
    <groupId>org.noear</groupId>
    <artifactId>solon-parent</artifactId>
    <version>3.0.2</version>
    <relativePath/>
</parent>
<!--
solon-web 用于web开发
-->
<dependency>
    <groupId>org.noear</groupId>
    <artifactId>solon-web</artifactId>
</dependency>

配置 solon maven plugin 用于打包:

<build>
    <finalName>${project.artifactId}</finalName>
    <plugins>
        <!--
        solon-maven-plugin 用于打包
        -->
        <plugin>
            <groupId>org.noear</groupId>
            <artifactId>solon-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

配置下 repositories 用于加速依赖下载:

<repositories>
    <!--
    腾讯云 maven 仓库,用于加速下载依赖
    -->
    <repository>
        <id>tencent</id>
        <url>https://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

编写代码

创建应用入口类:

/**
 * Hello world!
 *
 * @author BNTang
 */
@SolonMain
public class App {
    public static void main(String[] args) {
        Solon.start(App.class, args);
    }
}

编写控制器:

/**
 * @author BNTang
 * @version 1.0
 * @description 用于演示的控制器
 * @since 2024/11/7 星期四
 **/
@Controller
public class DemoController {
    @Mapping("/hello")
    public String hello(@Param(defaultValue = "world") String name) {
        return String.format("Hello %s!", name);
    }
}

运行项目

使用 IDE 运行,这里略过。

在浏览器中访问 http://localhost:8080/hello,应该可以看到 Hello, world! 的输出。

打包项目

在项目根目录下执行以下命令:

mvn clean package -DskipTests

打包成功后,会在 target 目录下生成一个 solon-demo.jar 文件。

部署并运行

在命令行中执行以下命令:

java -jar solon-demo.jar

结语

通过以上步骤,我们完成了一个基于 Solon 的简单应用。Solon 的高性能和轻量级特性使其成为构建高效 Java 应用的理想选择。后续我们可以深入探索 Solon 的更多功能,如依赖注入、AOP、插件机制等。

最后

如果您觉得这篇文章对您有所帮助,欢迎点赞、评论、转发,并关注我的公众号『BNTang』,我将在公众号中分享更多技术文章。

posted @   BNTang  阅读(496)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
  1. 1 总会有人离开 王巨星
  2. 2 月亮 孟凡明
  3. 3 迟里乌布
  4. 4 我只能离开 颜人中
  5. 5 达尔文 蔡健雅
  6. 6 夜色滚烫 叶明净
  7. 7 你的星环 路飞文
  8. 8 不再说话 三块木头
  9. 9 黄昏 粥粥和小伙/粥粥
  10. 10 爱不单行 刘大拿
  11. 11 心动贩卖机 PIggy
  12. 12 别来无恙 苏星婕
  13. 13 我们的歌 刘大拿
  14. 14 一直很安静 王贰浪
  15. 15 去有风的地方 清音
  16. 16 雪 Distance Capper/罗言
  17. 17 坏女孩 徐良/小凌
  18. 18 乐园 沧桑Cang333/虎皮蛋/曲甲
  19. 19 Ayo(Explicit) Chris Brown/Tyga
  20. 20 我的美丽feat.海洋Bo 海洋Bo/高睿
  21. 21 世事可爱 粥粥和小伙/粥粥
  22. 22 我记得 赵雷
  23. 23 我想牵着你的手 许嵩
  24. 24 人们都不懂 刘诺然
  25. 25 寻一个你(电视剧《苍兰诀》温情主题曲) TTTTTeehom
  26. 26 子莫格尼 杉和
  27. 27 Cat Cafe Shoffy
  28. 28 风停了雨停了我们还拥抱着 Superluckyqi
  29. 29 寂寞沙洲冷 于潼
  30. 30 三国恋 王巨星
  31. 31 达尔文 林俊杰
  32. 32 有些 颜人中
  33. 33 小模样 张小只ya
  34. 34 是否 程响
  35. 35 楼顶上的小斑鸠 队长
  36. 36 笑场 薛之谦
  37. 37 还是分开 张叶蕾
  38. 38 修炼爱情 林俊杰
  39. 39 二零三 毛不易
  40. 40 雅俗共赏 许嵩
  41. 41 Serendipity 古瑞斯Graps/Zakiya晴子
  42. 42 就让这大雨全都落下·2023 刘大拿
  43. 43 老男孩 筷子兄弟
  44. 44 有何不可 许嵩
  45. 45 缓缓 杜宣达
  46. 46 好久不见 陈奕迅
  47. 47 爱的魔法(Cover 金莎) 封茗囧菌
  48. 48 在你的身边 盛哲
  49. 49 带我去找夜生活 告五人
  50. 50 假面舞会 很美味
  51. 51 STAY The Kid LAROI/Justin Bieber
  52. 52 我好想睡觉的 无敌西红柿
  53. 53 日不落(温柔版)
  54. 54 恋爱画板 锦零
  55. 55 7710 好乐无荒/尹露浠
  56. 56 给你呀(又名:for ya) 蒋小呢
  57. 57 Love Story Taylor Swift
  58. 58 Plain Jane(Remix 13z) 鱼幼微
  59. 59 晚风 7opy/BT07
  60. 60 拜托 孙晨
  61. 61 乌梅子酱 李荣浩
  62. 62 南半球与北海道 范倪Liu
  63. 63 星河万里 Rom邢锐
日不落(温柔版) - 轶
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

词作者:Bard, Alexander Bengt Magnus*/Hansson, Anders Erik*/崔惟楷

曲作者:Bard, Alexander Bengt Magnus*/Hansson, Anders Erik*

英文原曲:BwO《Sunshine In The Rain》

中文原曲:蔡依林《日不落》

天空的雾来的漫不经心

河水像油画一样安静

和平鸽慵懒步伐押着韵

心偷偷的放晴

祈祷你像英勇的禁卫军

动也不动的守护爱情

你在回忆里留下的脚印

是我爱的风景

我要送你 日不落的想念

寄出代表爱的明信片

我要送你 日不落的爱恋

心牵着心把世界走遍

你就是庆典

你就是晴天

我的爱未眠

不落的想念

飞在你身边

我的爱未眠

爱的巴士总是走了又停

微笑望着广场上人群

我要把爱全都装进行李

陪我一起旅行

我要送你 日不落的想念

寄出代表爱的明信片

我要送你 日不落的爱恋

心牵着心把世界走遍

你就是庆典

你就是晴天

我的爱未眠

不落的想念

飞在你身边

我的爱未眠

我要送你 日不落的想念

寄出代表爱的明信片

我要送你 日不落的爱恋

心牵着心把世界走遍

你就是庆典

你就是晴天

我的爱未眠

不落的想念

飞在你身边

我的爱未眠

编曲:王宝新

混音:Tony Music

母带:Tony Music

监制:Vivi/贾皓然

制作人:小强

企划:赵睿/冉启升/火蓉

统筹:苏文嫒

出品:网易音乐人 x 青云LAB x 云上工作室

OP:Bulldozer Music& Universal/MCA Music Scand AB&Universal Music

OP:Applebay Songs AB (administered by Kobalt Music Publishing Asia Ltd.)

SP:Publishing MGB Scandinav/Universal Music Publishing CHINA

点击右上角即可分享
微信分享提示