Solon 是Java世界裡一個新的極易上手的Web框架。參考過 Javalin 、 Spring 等很多現有框架的設計。
小。真的是小。最小的執行單位只有 0.1m。就算有模板、jdbc、日誌放進去。。。估計3-5m就搞定了效能好。Hello world 的qps測試下,基本比 Spring boot 的高近1倍左右簡單便捷。基本和Spring mvc 的體驗接近,入手快。@XControllerpublic 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(); }})
//多資料來源的配置(配置可以注入,也可以直接取)//@XConfigurationpublic 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!
最新評論