真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Kotlin整合Vertx開發(fā)Web應(yīng)用

今天我們嘗試Kotlin整合Vertx,并決定建立一個(gè)非常簡(jiǎn)單的Web應(yīng)用程序,使用Kotlin和Vertx作為編程語言進(jìn)行編碼構(gòu)建。

創(chuàng)新互聯(lián)建站長(zhǎng)期為千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為靈武企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、成都網(wǎng)站制作,靈武網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

生成項(xiàng)目

打開控制臺(tái)窗口執(zhí)行以下代碼進(jìn)行生成一個(gè)maven項(xiàng)目

復(fù)制代碼 代碼如下:
mvn archetype:generate -DgroupId=com.edurt.kvi -DartifactId=kotlin-vertx-integration -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=1.0.0 -DinteractiveMode=false

修改pom.xml增加java和kotlin的支持



 4.0.0
 com.edurt.kvi
 kotlin-vertx-integration
 jar
 1.0.0

 kotlin-vertx-integration
 Kotlin Vertx Integration is a open source kotlin vertx integration example.

 
 
  
  1.2.71
  3.4.1
  
  3.3
  2.10.4
  1.2.71
  
  1.8
  UTF-8
  UTF-8
  1.8
  1.8
 

 
 
  
  
   org.jetbrains.kotlin
   kotlin-stdlib-jdk8
   ${dependency.kotlin.version}
  
  
   org.jetbrains.kotlin
   kotlin-reflect
   ${dependency.kotlin.version}
  
  
  
   io.vertx
   vertx-core
   ${dependency.vertx.ersion}
  
  
   io.vertx
   vertx-web
   ${dependency.vertx.ersion}
  
 

 
 
  3.5.0
 

 
 
  ${project.basedir}/src/main/kotlin
  ${project.basedir}/src/test/kotlin
  
   
    kotlin-maven-plugin
    org.jetbrains.kotlin
    
     
      -Xjsr305=strict
     
     
      spring
      jpa
      all-open
     
     
      
     
    
    
     
      org.jetbrains.kotlin
      kotlin-maven-allopen
      ${plugin.maven.kotlin.version}
     
     
      org.jetbrains.kotlin
      kotlin-maven-noarg
      ${plugin.maven.kotlin.version}
     
    
    
     
      kapt
      
       kapt
      
      
       
        src/main/kotlin
       
       
        
         org.springframework.boot
         spring-boot-configuration-processor
         ${project.parent.version}
        
       
      
     
    
   
   
    org.apache.maven.plugins
    maven-compiler-plugin
    ${plugin.maven.compiler.version}
    
     ${environment.compile.java.version}
     ${environment.compile.java.version}
    
   
   
    org.apache.maven.plugins
    maven-javadoc-plugin
    ${plugin.maven.javadoc.version}
    
     true
     
     
      
       Description
       test
       description
      
     
     
     -Xdoclint:none
    
   
  
 

添加Vertx實(shí)例

創(chuàng)建CoreVerticle類文件

package com.edurt.kvi.core

import io.vertx.core.AbstractVerticle
import io.vertx.core.Future
import io.vertx.core.Handler
import io.vertx.ext.web.Router
import io.vertx.ext.web.RoutingContext

class CoreVerticle : AbstractVerticle() {

 override fun start(startFuture: Future?) {
  val router = createRouter()
  val port = config().getInteger("http.port", 8080)
  vertx.createHttpServer()
    .requestHandler { router.accept(it) }
    .listen(port) { result ->
     if (result.succeeded()) {
      startFuture?.complete()
     } else {
      startFuture?.fail(result.cause())
     }
    }
 }

 private fun createRouter() = Router.router(vertx).apply {
  get("/").handler(handlerRoot)
 }

 /**
  * create router instance
  */
 val handlerRoot = Handler { req ->
  req.response().end("Hello Kotlin Vertx Integration!")
 }

}

設(shè)置啟動(dòng)類

package com.edurt.kvi

import com.edurt.kvi.core.CoreVerticle
import io.vertx.core.Vertx

class KotlinVertxIntegration

fun main(args: Array) {
 val vertx = Vertx.vertx()
 vertx.deployVerticle(CoreVerticle::class.java.name)
}

以上操作在vertx.deployVerticle階段執(zhí)行了部署Verticle的操作,即部署CoreVerticle。

啟動(dòng)應(yīng)用后瀏覽器訪問http://localhost:8080出現(xiàn)以下頁面

Kotlin整合Vertx開發(fā)Web應(yīng)用

增加頁面渲染功能

修改pom.xml文件增加頁面依賴

1.7.25


 io.vertx
 vertx-web-templ-thymeleaf
 ${dependency.vertx.ersion}


 org.slf4j
 slf4j-log4j12
 ${dependency.slf4j.version}

增加頁面渲染文件

package com.edurt.kvi.router

import io.vertx.ext.web.Router
import io.vertx.ext.web.RoutingContext
import io.vertx.ext.web.templ.ThymeleafTemplateEngine
import org.thymeleaf.templatemode.TemplateMode

class HomeViewRouter

fun index(r: Router) {
 val engine = ThymeleafTemplateEngine.create().setMode(TemplateMode.HTML)
 r.get("/index.html").handler { c ->
  render(c, engine, "templates/index.html")
 }
}

fun render(c: RoutingContext, engine: ThymeleafTemplateEngine, templ: String) {
 engine.render(c, templ) { res ->
  if (res.succeeded()) {
   c.response().end(res.result())
  } else {
   c.fail(res.cause())
  }
 }
}

在templates/index.html目錄下創(chuàng)建頁面文件




 Kotlin Vertx Integration
 



Welcome To Kotlin Vertx Integration!

修改CoreVerticle增加頁面跳轉(zhuǎn)

package com.edurt.kvi.core

import com.edurt.kvi.router.index
import io.vertx.core.AbstractVerticle
import io.vertx.core.Future
import io.vertx.core.Handler
import io.vertx.core.Vertx
import io.vertx.core.http.HttpServerResponse
import io.vertx.ext.web.Router
import io.vertx.ext.web.RoutingContext

class CoreVerticle : AbstractVerticle() {

 override fun start() {
  val router = createRouter(vertx)

  // go to index page
  index(router)

  vertx.createHttpServer().requestHandler { handler -> router.accept(handler) }.listen(8080)

//  val port = config().getInteger("http.port", 8080)
//  vertx.createHttpServer()
//    .requestHandler { router.accept(it) }
//    .listen(port) { result ->
//     if (result.succeeded()) {
//      startFuture?.complete()
//     } else {
//      startFuture?.fail(result.cause())
//     }
//    }
 }

 private fun createRouter() = Router.router(vertx).apply {
  get("/").handler(handlerRoot)
 }

 /**
  * create router instance
  */
 val handlerRoot = Handler { req ->
  req.response().end("Hello Kotlin Vertx Integration!")
 }

 fun createRouter(v: Vertx): Router {
  var router = Router.router(v)
  router.route("/").handler { c -> c.response().end("Hello Kotlin Vertx Integration!") }
  router.route("/index").handler { c -> c.response().html().end("Hello Kotlin Vertx Integration Page!") }
  return router
 }

 fun HttpServerResponse.html(): HttpServerResponse {
  return this.putHeader("content-type", "text/html")
 }

}

啟動(dòng)應(yīng)用后瀏覽器訪問http://localhost:8080/index.html出現(xiàn)以下頁面

Kotlin整合Vertx開發(fā)Web應(yīng)用

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。


名稱欄目:Kotlin整合Vertx開發(fā)Web應(yīng)用
標(biāo)題URL:http://weahome.cn/article/jpcdjj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部