美文网首页
探路jooby

探路jooby

作者: hohov | 来源:发表于2018-07-15 12:29 被阅读0次

Web Framework Benchmarks Round 16 里发现一个厉害玩意

各大框架性能对比
Multiple queries这一项排第六哦
其他各项的表现也非常不错, 于是打开了官网
jooby官网
  • Simple and effective programming model for building small and large scale web applications
  • Built with developer productivity in mind
  • Plain Java DSL for routes (no xml, or similar)
  • Reflection, annotations and dependency injection are kept to a minimum and in some cases is completely optional
  • No classpath hell, the default deployment model uses a normal JVM bootstrap
  • Modules are easy to use and do as little as possible

Jooby keeps it simple yet powerful.

吸引到我了, 一直很想用node那种方式写java web server!
看看GitHub
描述写着A modular micro web framework for Java and Kotlin
哈哈哈哈我爱kotlin, 走一个

  • git clone kotlin-gradle-starter这个项目下来
  • IDEA打开项目, 然后就是让gradle飞一会儿
  • build好了之后, 运行App.kt里面的main方法


    App.kt
    console

    不错, 启动挺快的, 这是访问结果


    Edge

行吧, 再来个helloworld
Kobby这个类是专为Kotlin写的, Java的话是继承的Jooby


App.kt

再走一个


console
Edge
Postman

看到没, 就是这么easy


接下来再回头看看这几个写法
github导下来的项目是这样的

class App : Kooby({
    get {
        val name = param("name").value("Kotlin")
        "Hello $name!"
    }
})

看起来就很先进啊, 直接在父类的构造方法里面传入get路由,点进去看看

constructor(init: Kooby.() -> Unit): this() {
    this.init()
}

次构造方法里面接受一个init, init的入参是Kobby类中的方法, 没有返回值
好吧我kotlin的火候还不够, 也是第一次见这种写法
好处就是我们可以在Kooby的构造器里面直接写对应的路由了, 像这样

class App : Kooby({
    get ("/hello") {"Hello world"}
    post ("/hello"){ "Hello there" }
})

看看Jooby中定义的这两个方法

fun get(pattern: String = "/", init: Request.() -> Any): Route.Definition {
  return get(pattern, {req-> req.init()})
}

fun post(pattern: String = "/", init: Request.() -> Any): Route.Definition {
  return post(pattern, {req-> req.init()})
}

都是接受两个参数, 一个pattern, 一个处理器, kotlin里面方法的最后一个参数是lambda时可以将lambda写到括号外面, 只有一个参数的话就可以去掉()了, 像官方demo的那个get{}一样

也可以自己写路由, 然后在App里引用

package starter.kotlin

import org.jooby.mvc.GET
import org.jooby.mvc.Path

@Path("/router")
class Router {
    @GET
    fun salute(): String {
        return "Hey , this is a router"
    }
}

然后是App.kt里面

class App : Kooby({
    use(Router::class)
})

这样就可以了, 写法真的神似node啊


console
Edge

今天就到这里了, 先埋个坑, 得闲做个不太具备参考意义的hellowold对比测试, 对比一下node, springmvc, webflux和jooby的性能(不知道何年何月)

相关文章

  • 探路jooby

    在Web Framework Benchmarks Round 16 里发现一个厉害玩意 Simple and e...

  • 探路

    闲来想把豆腐做,赚点米钱过生活; 因求伯乐试探问,此地可否卖柴火? 初出茅庐少君顾,才入凡世多阎罗; 太公垂钓贤王...

  • 探路

    其实地上本没有路,走的人多了,也便成了路。——鲁迅 今天上班时,突发奇想,下班走路回宿舍要多久?6点钟下班,拿走书...

  • 探路

    迷茫在不知道如何处理好和你的关系,喜欢你直说怕尴尬,不说怕后悔,但我现在做的事是相互了解。

  • 探路

    下午去小学同学家拜年,爸爸和哥哥都不在家,得走路。 有两条可以走的路,一条远的直通到底的水泥路,一条近的绕过山头各...

  • 探路

    两个人休假在家,四处溜达,美其名曰:探路。 早餐后与老公一同万步行,最初是常走的滨河公园。 河岸一路见粉红大花,开...

  • 探路

    你想做的却得不到你想要的; 你不想做的却好多人想找你做。 前进的道路上总是会长有很多杂草,它们挡住你的去路。 有的...

  • 探路

    早就知道房后在修路,但修到什么程度并不清楚,今天说什么都要探一探路。 出门向北走,过了两个桥洞...

  • 探路

    此刻正在回家的火车上,昨天爸爸告诉我,爷爷下了病危通知书。 连续三年了,先是奶奶,再是姑姑。 爷爷是个老兵,从小就...

  • 探路

    3月27日,星期五,晴。 白天没干啥事,下午跑一趟市场,又发现一个前辈,可能早就在了,只是没有发现。一个行业,人才...

网友评论

      本文标题:探路jooby

      本文链接:https://www.haomeiwen.com/subject/woqppftx.html