三个类似 Sinatra 的 Java 框架介绍

Sinatra 是一个微型的 Ruby 语言的 Web 框架,据说 100 行代码就可以开发一个博客软件。一个简单的hello world的web应用用Sinatra只需5行代码:
 
<font face="Courier New">1</font>require 'rubygems'
<font face="Courier New">2</font>require 'sinatra'
<font face="Courier New">3</font><font face="Courier New"> </font> 
<font face="Courier New">4</font>get '/' <font face="Courier New">do</font>
<font face="Courier New">5</font>  'Hello World'
<font face="Courier New">6</font><font face="Courier New">end</font>

而 Sinatra 这种框架的思路被越来越人所接受,也因此创造出参考该框架的其他语言移植版本。

下面是三个 Java 语言实现的类 Sinatra 框架:

1. Turismo

Turismo 是一个类似 Sinatra 的 Java 的微型 Web 框架。

示例代码:

 
<font face="Courier New">01</font><font face="Courier New">public</font> <font face="Courier New">class</font> AppRoutes extends <font face="Courier New">RoutesList { </font>
<font face="Courier New">02</font>    protected <font face="Courier New">void</font> <font face="Courier New">map() { </font>
<font face="Courier New">03</font>        get("/wildcard/*/:id", new <font face="Courier New">Action() { </font>
<font face="Courier New">04</font>            public <font face="Courier New">void</font> <font face="Courier New">run() { </font>
<font face="Courier New">05</font>                String id = params("id");
<font face="Courier New">06</font>                print("wildcard id " <font face="Courier New">+ id); </font>
<font face="Courier New">07</font>            }
<font face="Courier New">08</font>        });
<font face="Courier New">09</font>    }
<font face="Courier New">10</font><font face="Courier New">}</font>

2. Spark Framework

Spark是一个微型的Java Web框架,它的灵感来自于Sinatra,它的目的是让你以最小的代价创建出一个Java Web应用。

示例代码:

<font face="Courier New">01</font><font face="Courier New">import</font> <font face="Courier New">static</font> <font face="Courier New">spark.Spark.*; </font>
<font face="Courier New">02</font><font face="Courier New">import</font> <font face="Courier New">spark.*; </font>
<font face="Courier New">03</font><font face="Courier New"> </font> 
<font face="Courier New">04</font><font face="Courier New">public</font> <font face="Courier New">class</font> <font face="Courier New">HelloWorld { </font>
<font face="Courier New">05</font><font face="Courier New"> </font> 
<font face="Courier New">06</font>   public <font face="Courier New">static</font> <font face="Courier New">void</font> <font face="Courier New">main(String[] args) { </font>
<font face="Courier New">07</font><font face="Courier New">       </font> 
<font face="Courier New">08</font>      get(new Route("/hello") {
<font face="Courier New">09</font>         @Override
<font face="Courier New">10</font>         public <font face="Courier New">Object handle(Request request, Response response) { </font>
<font face="Courier New">11</font>            return "Hello World!";
<font face="Courier New">12</font>         }
<font face="Courier New">13</font>      });
<font face="Courier New">14</font>   }
<font face="Courier New">15</font><font face="Courier New">}</font>

3. Scalatra

Scalatra 是一个 Scala 语言仿 Sinatra 的框架。

示例代码:

<font face="Courier New">1</font><font face="Courier New">import</font> org.scalatra._
<font face="Courier New">2</font><font face="Courier New"> </font> 
<font face="Courier New">3</font><font face="Courier New">class</font> ScalatraExample extends <font face="Courier New">ScalatraServlet { </font>
<font face="Courier New">4</font>  get("/") {
<font face="Courier New">5</font>    <h1>Hello, world!</h1>
<font face="Courier New">6</font>  }
<font face="Courier New">7</font><font face="Courier New">}</font>

总结:

Sinatra 是一种全堆栈的 Web 框架解决方案,这种思路用在 Java 上,你觉得靠谱吗?

说说你的想法吧?

相关推荐