您当前的位置:首页 > 电脑百科 > 程序开发 > 框架

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

时间:2020-08-11 10:53:16  来源:  作者:

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

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

  • 小。真的是小。最小的运行单位只有 0.1m。就算有模板、jdbc、日志放进去。。。估计3-5m就搞定了
  • 性能好。Hello world 的qps测试下,基本比 Spring boot 的高近1倍左右
  • 简单便捷。基本和Spring mvc 的体验接近,入手快。
@XController
public class HelloworldApp {
    public static void main(String[] args) {
        XApp.start(HelloworldApp.class, args);
    }

    @XMapping("/")
    public String helloworld(){
        return "Hello world!";
    }
}

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

public class HelloworldApp {
    public static void main(String[] args) {
        XApp app = XApp.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((ctx, err)->{
  if(XApp.cfg().isDebugMode()){
      
      err.printStackTrace();
  }
})
//多数据源的配置(配置可以注入,也可以直接取)
//
@XConfiguration
public class Config {
    @XBean("db1")
    public DbContext db1(@XInject("${test.db1}") HikariDataSource dataSource) {
        String schema = XApp.cfg().get("test.db1.schema");
        return new DbContext(schema, dataSource);
    }

    @XBean("db2")
    public DbContext db2(@XInject("${test.db2}") HikariDataSource dataSource) {
        String schema = XApp.cfg().get("test.db2.schema");
        return new DbContext(schema, dataSource);
    }
}

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



Tags:Java Web框架   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
Solon 是Java世界里一个新的极易上手的Web框架。参考过 Javalin 、 Spring 等很多现有框架的设计。取名自海贼王里的角色,说是希望能像他一样能打 小。真的是小。最小的运行...【详细内容】
2020-08-11  Tags: Java Web框架  点击:(92)  评论:(0)  加入收藏
▌简易百科推荐
近日只是为了想尽办法为 Flask 实现 Swagger UI 文档功能,基本上要让 Flask 配合 Flasgger, 所以写了篇 Flask 应用集成 Swagger UI 。然而不断的 Google 过程中偶然间发现了...【详细内容】
2021-12-23  Python阿杰    Tags:FastAPI   点击:(6)  评论:(0)  加入收藏
文章目录1、Quartz1.1 引入依赖<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.2</version></dependency>...【详细内容】
2021-12-22  java老人头    Tags:框架   点击:(11)  评论:(0)  加入收藏
今天来梳理下 Spring 的整体脉络啦,为后面的文章做个铺垫~后面几篇文章应该会讲讲这些内容啦 Spring AOP 插件 (了好久都忘了 ) 分享下 4ye 在项目中利用 AOP + MybatisPlus 对...【详细内容】
2021-12-07  Java4ye    Tags:Spring   点击:(14)  评论:(0)  加入收藏
&emsp;前面通过入门案例介绍,我们发现在SpringSecurity中如果我们没有使用自定义的登录界面,那么SpringSecurity会给我们提供一个系统登录界面。但真实项目中我们一般都会使用...【详细内容】
2021-12-06  波哥带你学Java    Tags:SpringSecurity   点击:(18)  评论:(0)  加入收藏
React 简介 React 基本使用<div id="test"></div><script type="text/javascript" src="../js/react.development.js"></script><script type="text/javascript" src="../js...【详细内容】
2021-11-30  清闲的帆船先生    Tags:框架   点击:(19)  评论:(0)  加入收藏
流水线(Pipeline)是把一个重复的过程分解为若干个子过程,使每个子过程与其他子过程并行进行的技术。本文主要介绍了诞生于云原生时代的流水线框架 Argo。 什么是流水线?在计算机...【详细内容】
2021-11-30  叼着猫的鱼    Tags:框架   点击:(21)  评论:(0)  加入收藏
TKinterThinter 是标准的python包,你可以在linx,macos,windows上使用它,你不需要安装它,因为它是python自带的扩展包。 它采用TCL的控制接口,你可以非常方便地写出图形界面,如...【详细内容】
2021-11-30    梦回故里归来  Tags:框架   点击:(26)  评论:(0)  加入收藏
前言项目中的配置文件会有密码的存在,例如数据库的密码、邮箱的密码、FTP的密码等。配置的密码以明文的方式暴露,并不是一种安全的方式,特别是大型项目的生产环境中,因为配置文...【详细内容】
2021-11-17  充满元气的java爱好者  博客园  Tags:SpringBoot   点击:(25)  评论:(0)  加入收藏
一、搭建环境1、创建数据库表和表结构create table account(id INT identity(1,1) primary key,name varchar(20),[money] DECIMAL2、创建maven的工程SSM,在pom.xml文件引入...【详细内容】
2021-11-11  AT小白在线中  搜狐号  Tags:开发框架   点击:(29)  评论:(0)  加入收藏
SpringBoot开发的物联网通信平台系统项目功能模块 功能 说明 MQTT 1.SSL支持 2.集群化部署时暂不支持retain&will类型消 UDP ...【详细内容】
2021-11-05  小程序建站    Tags:SpringBoot   点击:(55)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条