ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

又一个小而美的Java 开发框架: Solon 1.2 新篇

2020-12-30 09:32:44  阅读:249  来源: 互联网

标签:map 小而 Solon 1.2 app ctx class Java public


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项目地址

标签:map,小而,Solon,1.2,app,ctx,class,Java,public
来源: https://www.cnblogs.com/noear/p/14209815.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有