当前位置: 首页 > article >正文

Solon浅体验

文章目录

  • 一、引言
  • 二、Solon体验
  • 三、最后

一、引言

Rod Johnson创建开发的Spring框架为Java开发者提供全面的基础设施支持,开发者可以使用这个框架快速构建Java应用程序。并且随着时间推移,Spring框架已经发展成为一个庞大的生态系统,包括但不限于SpringBootSpringCloud等多个开源项目。

但是本文的主要内容和Spring关系不大,主要是关于国产Spring——Solon的初步体验。

Solon框架是我这几天在网上看博客的时候看到的,它号称并发高 300%;内存省 50%;启动快 10 倍;打包小 90%;同时支持 java8 ~ java22, native 运行时。并且也是Java “生态型”应用开发框架,从它官方文档不难看出,Solon是直接对标Spring的,Spring生态中有SpringCloud微服务解决方案,而Solon也有属于它的SolonCloud解决方案,包括网关、监控、分布式事务等都支持。

功能名称Solon Cloud接口定义配置规范(具体暂略)
分布式注册与发现Solon Cloud DiscoveryCloudDiscoveryServicesolon.cloud.@@.discovery
分布式网关Solon Cloud Gateway--
分布式断路器Solon Cloud BreakerCloudBreakerServicesolon.cloud.@@.breaker
分布式配置Solon Cloud ConfigCloudConfigServicesolon.cloud.@@.config
分布式跟踪Solon Cloud TraceCloudTraceServicesolon.cloud.@@.trace
分布式监控Solon Cloud MetricCloudMetricServicesolon.cloud.@@.metric
分布式事件总线Solon Cloud EventCloudEventServicesolon.cloud.@@.event
分布式任务Solon Cloud JobCloudJobServicesolon.cloud.@@.job
分布式IDSolon Cloud IdCloudIdServicesolon.cloud.@@.id
分布式文件Solon Cloud FileCloudFileServicesolon.cloud.@@.file
分布式名单Solon Cloud ListCloudListServicesolon.cloud.@@.list
分布式锁Solon Cloud LockCloudLockServicesolon.cloud.@@.lock
分布式日志Solon Cloud LoggingCloudLogServicesolon.cloud.@@.log

下面的浅浅体验一下Solon框架的试用吧。

官网: https://solon.noear.org/

注意:我这里用的是Solon v3.0.2


二、Solon体验

先导入Solon的相关依赖,我这里用的Maevn

<parent>
    <groupId>org.noear</groupId>
    <artifactId>solon-parent</artifactId>
    <version>3.0.2</version>
</parent>

<dependency>
    <groupId>org.noear</groupId>
    <artifactId>solon-web</artifactId>
</dependency>

编写启动类,这里就和SpringBoot一样了

public class SolonDemoApplication {

    public static void main(String[] args) {
        Solon.start(SolonDemoApplication.class, args);
    }

}

编写一个接口返回Hello World字符串

@Controller
public class DemoController {


    @Mapping("/hello")
    public String hello(){
        return "Hello World";
    }

}

启动SolonDemoApplication,1s不到就启动完成了,感觉还挺快

image-20241026112552846

访问http://localhost:8080/hello

image-20241026112637271

使用Mapping注解就类似SpringMVC中的RequestMapping注解了,默认是GET请求,其他注解如下所示

@Controller控制器注解(只有一个注解,会自动通过不同的返回值做不同的处理)
@Param注入请求参数(包括:QueryString、Form、Path)。主要提供默认值等支持
@Header注入请求 header
@Cookie注入请求 cookie
@Path注入请求 path 变量(因为框架会自动处理,所以这个只是标识下方便文档生成用)
@Body注入请求体(一般会自动处理。仅在主体的 String, Steam, Map 时才需要)
@Mapping路由关系印射注解
@Get@Mapping 的辅助注解,便于 RESTful 开发
@Post@Mapping 的辅助注解,便于 RESTful 开发
@Put@Mapping 的辅助注解,便于 RESTful 开发
@Delete@Mapping 的辅助注解,便于 RESTful 开发
@Patch@Mapping 的辅助注解,便于 RESTful 开发
@Produces输出内容类型申明
@Consumes输入内容类型申明(当输出内容类型未包函 @Consumes,则响应为 415 状态码)

三、最后

文档内容还有很多,我看的是Solon Web开发,有兴趣的可以点击看看。


http://www.kler.cn/news/367609.html

相关文章:

  • 【无人机设计与控制】改进人工势场法,引入模糊控制实现无人机路径规划和避障
  • Python实现贝叶斯优化器(Bayes_opt)优化简单循环神经网络分类模型(SimpleRNN分类算法)项目实战
  • 009:屏幕录制软件FastStoneCapture9.5安装教程
  • 15分钟学 Go 小项目:Web API
  • 【Spring MVC】请求参数的获取
  • IDEA开发工具使用技巧积累
  • 在虚拟机中编译imx6ull开发板的字符驱动文件报错关于freetype的问题
  • JSON格式及jackson.jar包的安装与配置
  • 科技赋能:在AIGC的道路上找到自己的领域
  • C# LINQ语法学习
  • XxlJob迁移SnailJob工具来了
  • 【mysql 进阶】1-1 mysql 程序介绍
  • 力扣周赛Q1.出现在屏幕上字符串序列
  • webpack5搭建react脚手架详细步骤
  • mysql简答
  • 【计网】网络层路由过程 ,理解IP分片与组装
  • 【自然语言处理】BERT模型
  • Jedis(二)SpringBoot集成Jedis
  • 富格林:曝光有利追损操作方式
  • 基于Springboot+Vue 云南旅游管理系统(源码+LW+部署讲解+数据库+ppt)
  • 【C++STL】list的模拟实现
  • git clone完整使用手册
  • Cesium中的坐标系
  • 基于Arduino的LED亮灭按键控制
  • MySQL优化手段有哪些
  • 算法训练(leetcode)二刷第七天 | 344. 反转字符串、541. 反转字符串 II、54. 替换数字(第八期模拟笔试)