又一个小而美的Java 开发框架: Solon 1.2 新篇
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项目地址
- Gitee: https://gitee.com/noear/solon
- Github: https://github.com/noear/solon
又一个小而美的Java 开发框架: Solon 1.2 新篇的更多相关文章
- 又一个小而美的Java Web框架: Solon!
Solon 是Java世界里一个新的极易上手的Web框架.参考过 Javalin . Spring 等很多现有框架的设计. 取名自海贼王里的角色,说是希能像他一样能打 小.真的是小.最小的运行单位只有 ...
- 不妨试试更快更小更灵活Java开发框架Solon
@ 目录 概述 定义 性能 架构 实战 Solon Web示例 Solon Mybatis-Plus示例 Solon WebSocket示例 Solon Remoting RPC示例 Solon Cl ...
- 轻量级的Java 开发框架 Spring
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development a ...
- BuguMongo是一个MongoDB Java开发框架,集成了DAO、Query、Lucene、GridFS等功能
http://code.google.com/p/bugumongo/ 简介 BuguMongo是一个MongoDB Java开发框架,它的主要功能包括: 基于注解的对象-文档映射(Object-Do ...
- Solon,一个轻量级的应用开发框架。发布官网喽!!!
官网发布: https://solon.noear.org/ 项目简介: Solon,是一个轻量级的应用开发框架.更快.更小.更自由! 支持JDK8+:主框架0.1Mb:组合不同的插件应对不同需求:方 ...
- Prism for WPF 搭建一个简单的模块化开发框架(五)添加聊天、消息模块
原文:Prism for WPF 搭建一个简单的模块化开发框架(五)添加聊天.消息模块 中秋节假期没事继续搞了搞 做了各聊天的模块,需要继续优化 第一步画页面 页面参考https://github.c ...
- 教你打造一个Android组件化开发框架
*本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 CC:Component Caller,一个android组件化开发框架, 已开源,github地址:https://github ...
- Linux环境下部署完JDK后运行一个简单的Java程序
前言 前一篇文章详细讲解了如何在Windows环境下安装虚拟机+Linux系统,并且成功部署了JDK. 不过部署完JDK之后,我们判断部署是否成功的依据是看"java -version&qu ...
- 一个简单的Java web服务器实现
前言 一个简单的Java web服务器实现,比较简单,基于java.net.Socket和java.net.ServerSocket实现: 程序执行步骤 创建一个ServerSocket对象: 调用S ...
随机推荐
- SSM之Spring框架--->>墨盒案例
分析: 程序中包括打印机(Printer).墨盒(Ink).和纸张(Paper).三类组件 首先创建一个新项目文件Spring_Box 我们来定义墨盒和纸张的接口类 墨盒接口Ink.java文件内容如 ...
- 使用Docker快速部署各类服务
使用Docker快速部署各类服务 一键安装Docker #Centos环境 wget -O- https://gitee.com/iubest/dinstall/raw/master/install. ...
- 无需付费,教你IDEA社区版中开发Web项目(SpringBoot\Tomcat)
1.IDEA 版本介绍 最近有小伙伴私信我说 IDEA 破解怎么总是失效?难道就没有使用长一点的吗... 咳咳,除了给我留言「激活码」外,或许社区版可能完全满足你的需求. 相信有挺多小伙伴可能不清楚或 ...
- Synchronized和ReentTrantLock二者区别
写在前面 Java 提供了两种锁机制来控制多个线程对共享资源的互斥访问,第一个是 JVM 实现的 synchronized,而另一个是 JDK 实现的 ReentrantLock.这两种锁以及后面提到 ...
- Python中判断字符串是否为数字的三个方法isdecimal 、isdigit、isnumeric的差别
isdecimal .isdigit.isnumeric这三个字符串方法都用于判断字符串是否为数字,为什么用三个方法呢?他们的差别是什么内? isdecimal:是否为十进制数字符,包括Unicode ...
- Python中的迭代是什么意思?
Python中的迭代是指通过重复执行的代码处理相似的数据集的过程,并且本次迭代的处理数据要依赖上一次的结果继续往下做,上一次产生的结果为下一次产生结果的初始状态,如果中途有任何停顿,都不能算是迭代. ...
- 第9.4节 Python中用readline读取二进制文件方式打开文件
在<第9.3节 Python的文件内容读取:readline>中介绍了使用readline读取文件的处理,readline除了使用文本文件方式打开文件读外,也可以读取二进制方式打开的文件, ...
- PyQt(Python+Qt)学习随笔:QListWidget获取指定行对应项的item()方法
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在列表部件中,可以通过item方法获取指定行对应的项,语法如下: QListWidgetItem i ...
- Oracle10g安装
1.下载链接:https://pan.baidu.com/s/1peD3iCTcE2Gg2cPNGLmLgQ 提取码:tjk4 一.ORACLE安装 WIN7.WIN10系统安装需要修改兼容性. 点击 ...
- js 二分查找
二分查找也叫对折查找,对于一个从小到大的有序数组,想要在数组中找到某个值,依次对折查找,小于就在从左边开始,大于就从右边开始,再判断对折后当前的那个索引的值和需要查找的值对比,如果小则high-1,小 ...