Solon浅体验
文章目录
- 一、引言
- 二、Solon体验
- 三、最后
一、引言
由Rod Johnson
创建开发的Spring
框架为Java开发者提供全面的基础设施支持,开发者可以使用这个框架快速构建Java应用程序。并且随着时间推移,Spring
框架已经发展成为一个庞大的生态系统,包括但不限于SpringBoot
、SpringCloud
等多个开源项目。
但是本文的主要内容和Spring
关系不大,主要是关于国产Spring
——Solon
的初步体验。
Solon
框架是我这几天在网上看博客的时候看到的,它号称并发高 300%;内存省 50%;启动快 10 倍;打包小 90%;同时支持 java8 ~ java22, native 运行时。并且也是Java “生态型”应用开发框架,从它官方文档不难看出,Solon
是直接对标Spring
的,Spring
生态中有SpringCloud
微服务解决方案,而Solon
也有属于它的SolonCloud
解决方案,包括网关、监控、分布式事务等都支持。
功能名称 | Solon Cloud | 接口定义 | 配置规范(具体暂略) |
---|---|---|---|
分布式注册与发现 | Solon Cloud Discovery | CloudDiscoveryService | solon.cloud.@@.discovery |
分布式网关 | Solon Cloud Gateway | - | - |
分布式断路器 | Solon Cloud Breaker | CloudBreakerService | solon.cloud.@@.breaker |
分布式配置 | Solon Cloud Config | CloudConfigService | solon.cloud.@@.config |
分布式跟踪 | Solon Cloud Trace | CloudTraceService | solon.cloud.@@.trace |
分布式监控 | Solon Cloud Metric | CloudMetricService | solon.cloud.@@.metric |
分布式事件总线 | Solon Cloud Event | CloudEventService | solon.cloud.@@.event |
分布式任务 | Solon Cloud Job | CloudJobService | solon.cloud.@@.job |
分布式ID | Solon Cloud Id | CloudIdService | solon.cloud.@@.id |
分布式文件 | Solon Cloud File | CloudFileService | solon.cloud.@@.file |
分布式名单 | Solon Cloud List | CloudListService | solon.cloud.@@.list |
分布式锁 | Solon Cloud Lock | CloudLockService | solon.cloud.@@.lock |
分布式日志 | Solon Cloud Logging | CloudLogService | solon.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不到就启动完成了,感觉还挺快
访问http://localhost:8080/hello
使用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开发,有兴趣的可以点击看看。