Solon 1.2 发布后,取消了X类名前缀。故对此文做些调整。

Solon 是Java世界里一个新的极易上手的Java开发框架。参考过 Javalin 、 Spring boot 等很多现有框架的设计。

取名自海贼王里的角色“索隆”,说是希望能像他一样能打

  • 小。真的是小。最小的Http运行单位只有 0.1m。就算有模板、jdbc、日志放进去。。。估计2m-5m就搞定了
  • 性能好。Hello world 的qps测试下,基本比 Spring boot 的高近1倍左右
  • 简单便捷。基本和Spring mvc 的体验接近,入手快。

官方支持的jdk版本为:8.0 - 15。已发布的基本都支持......

@Controller
public class HelloworldApp {
public static void main(String[] args) {
Solon.start(HelloworldApp.class, args);
} @Mapping("/")
public String helloworld(){
return "Hello world!";
}
}

是不是很熟悉的感觉?和Spring boot mvc体验很像。

public class HelloworldApp {
public static void main(String[] args) {
SolonApp app = Solon.start(HelloworldApp.class, args); var map = new HashMap<String, Integer>();
map.put("val1", 1);
map.put("val2", 2); app.get("/", ctx -> ctx.output("Hello World"));
app.get("/json/map", ctx -> ctx.render(map)); app.after("**", ctx -> {
System.out.println("log::");
System.out.println(ctx.attr("output", ""));
});
}
}

是不是非常简单的感觉。以上两种可以混用的。。。尤其是要加一个后置处理,真的方便。再放点代码:

//启动参数加-debug=1 ,打印所有异常
//
app.onError((err)->{
if(Solon.cfg().isDebugMode()){ err.printStackTrace();
}
})
//多数据源的配置(配置可以注入,也可以直接取)
//
@Configuration
public class Config {
@Bean("db1")
public DataSource db1(@Inject("${test.db1}") HikariDataSource dataSource) {
return dataSource;
} @Bean("db2")
public DataSource db2(@Inject("${test.db2}") HikariDataSource dataSource) {
return dataSource;
}
}

如果你是个Java程序员,还从来没有用过Spring-web以外的WEB框架,或许你可以试试Solon!

附:Solon项目地址

又一个小而美的Java 开发框架: Solon 1.2 新篇的更多相关文章

  1. 又一个小而美的Java Web框架: Solon!

    Solon 是Java世界里一个新的极易上手的Web框架.参考过 Javalin . Spring 等很多现有框架的设计. 取名自海贼王里的角色,说是希能像他一样能打 小.真的是小.最小的运行单位只有 ...

  2. 不妨试试更快更小更灵活Java开发框架Solon

    @ 目录 概述 定义 性能 架构 实战 Solon Web示例 Solon Mybatis-Plus示例 Solon WebSocket示例 Solon Remoting RPC示例 Solon Cl ...

  3. 轻量级的Java 开发框架 Spring

    Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development a ...

  4. BuguMongo是一个MongoDB Java开发框架,集成了DAO、Query、Lucene、GridFS等功能

    http://code.google.com/p/bugumongo/ 简介 BuguMongo是一个MongoDB Java开发框架,它的主要功能包括: 基于注解的对象-文档映射(Object-Do ...

  5. Solon,一个轻量级的应用开发框架。发布官网喽!!!

    官网发布: https://solon.noear.org/ 项目简介: Solon,是一个轻量级的应用开发框架.更快.更小.更自由! 支持JDK8+:主框架0.1Mb:组合不同的插件应对不同需求:方 ...

  6. Prism for WPF 搭建一个简单的模块化开发框架(五)添加聊天、消息模块

    原文:Prism for WPF 搭建一个简单的模块化开发框架(五)添加聊天.消息模块 中秋节假期没事继续搞了搞 做了各聊天的模块,需要继续优化 第一步画页面 页面参考https://github.c ...

  7. 教你打造一个Android组件化开发框架

    *本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 CC:Component Caller,一个android组件化开发框架, 已开源,github地址:https://github ...

  8. Linux环境下部署完JDK后运行一个简单的Java程序

    前言 前一篇文章详细讲解了如何在Windows环境下安装虚拟机+Linux系统,并且成功部署了JDK. 不过部署完JDK之后,我们判断部署是否成功的依据是看"java -version&qu ...

  9. 一个简单的Java web服务器实现

    前言 一个简单的Java web服务器实现,比较简单,基于java.net.Socket和java.net.ServerSocket实现: 程序执行步骤 创建一个ServerSocket对象: 调用S ...

随机推荐

  1. SSM之Spring框架--->>墨盒案例

    分析: 程序中包括打印机(Printer).墨盒(Ink).和纸张(Paper).三类组件 首先创建一个新项目文件Spring_Box 我们来定义墨盒和纸张的接口类 墨盒接口Ink.java文件内容如 ...

  2. 使用Docker快速部署各类服务

    使用Docker快速部署各类服务 一键安装Docker #Centos环境 wget -O- https://gitee.com/iubest/dinstall/raw/master/install. ...

  3. 无需付费,教你IDEA社区版中开发Web项目(SpringBoot\Tomcat)

    1.IDEA 版本介绍 最近有小伙伴私信我说 IDEA 破解怎么总是失效?难道就没有使用长一点的吗... 咳咳,除了给我留言「激活码」外,或许社区版可能完全满足你的需求. 相信有挺多小伙伴可能不清楚或 ...

  4. Synchronized和ReentTrantLock二者区别

    写在前面 Java 提供了两种锁机制来控制多个线程对共享资源的互斥访问,第一个是 JVM 实现的 synchronized,而另一个是 JDK 实现的 ReentrantLock.这两种锁以及后面提到 ...

  5. Python中判断字符串是否为数字的三个方法isdecimal 、isdigit、isnumeric的差别

    isdecimal .isdigit.isnumeric这三个字符串方法都用于判断字符串是否为数字,为什么用三个方法呢?他们的差别是什么内? isdecimal:是否为十进制数字符,包括Unicode ...

  6. Python中的迭代是什么意思?

    Python中的迭代是指通过重复执行的代码处理相似的数据集的过程,并且本次迭代的处理数据要依赖上一次的结果继续往下做,上一次产生的结果为下一次产生结果的初始状态,如果中途有任何停顿,都不能算是迭代. ...

  7. 第9.4节 Python中用readline读取二进制文件方式打开文件

    在<第9.3节 Python的文件内容读取:readline>中介绍了使用readline读取文件的处理,readline除了使用文本文件方式打开文件读外,也可以读取二进制方式打开的文件, ...

  8. PyQt(Python+Qt)学习随笔:QListWidget获取指定行对应项的item()方法

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在列表部件中,可以通过item方法获取指定行对应的项,语法如下: QListWidgetItem i ...

  9. Oracle10g安装

    1.下载链接:https://pan.baidu.com/s/1peD3iCTcE2Gg2cPNGLmLgQ 提取码:tjk4 一.ORACLE安装 WIN7.WIN10系统安装需要修改兼容性. 点击 ...

  10. js 二分查找

    二分查找也叫对折查找,对于一个从小到大的有序数组,想要在数组中找到某个值,依次对折查找,小于就在从左边开始,大于就从右边开始,再判断对折后当前的那个索引的值和需要查找的值对比,如果小则high-1,小 ...