Solon 是一个类似Springboot的微型开发框架,也是一个不基于Servlet的开发框架。项目从2018年启动以来,参考过大量前人作品;历时两年,3500多次的commit;内核保持0.1m的身材,超高的Web跑分,良好的使用体验。 Solon 强调:克制 + 简洁 + 开放的原则;力求:更小、更快、更自由的体验。 #### 所谓更小: 内核0.1m,最小Web开发单位0.2m(相比Springboot项目包,小到可以乎略不计了)。 具用户反映,某些项目切换到Solon后,可以缩减到原来10%的包大小。 #### 所谓更快: 本机helloworld测试,启动最快可达0.09s,Qps可达12万之多。可参考:《[helloworld_wrk_test](
)》。 #### 所谓更自由: * 代码操控自由: ```java // 除了注入模式之外,还可以按需手动 // //手动获取配置 String userName = Solon.cfg().get("user.name"); Properties dbcfg = Solon.cfg().getProp("db"); //手动获取容器里的Bean UserService userService = Aop.get(UserService.class); //手动监听http post请求 Solon.global().post("/user/update", x-> userService.updateById(x.paramMap())); ``` * 框架选择自由: 可以用solon-web这样的快速开发集成包。也可以按项目需要选择不同的插件组装,比如:为非Solon项目添加solon.boot.jlhttp,0.2m即可让项目实现http+rpc开发;还可以用MVC开发Socket应用。 #### 特性简集: ### 1、与Springboot的常用注解比较 | Solon 1.2.12 | Springboot 2.3.3 | 说明 | | -------- | -------- | -------- | | @Inject * | @Autowired | 注入Bean(by type) | | @Inject("app.name}") String appName; @Mapping("/") public Object home(Context c, @Param(defaultValue="noear") String name){ return appName + ": Hello " + name; } } ``` ### 3、与Springboot相似的事务支持@Tran * 采用Springboot相同的事件传播机制及隔离级别 ```java @Controller public class DemoController{ @Db BaseMapper)
