SpringBoot

SpringBoot

Kotlin+SpringBoot服务端restful框架搭建(3)简单集成swagger2

后台开发Cat 发表了文章 • 3 个评论 • 443 次浏览 • 2018-04-04 15:46 • 来自相关话题

添加依赖

在之前的的项目添加这些swagger2依赖的类
 
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>注意:本文只是简单的做集成,目前尝试可以正常启动显示接口信息,但是对于部分嵌套的注解添加会报错,目前还没找到解决方案。 @APiresponses()和@ApiImplicitParams()使用时回报错。
 
添加swagger2配置类

这个配置springboot中使用swagger2类似
package com.kotliner.demo
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import springfox.documentation.builders.ApiInfoBuilder
import springfox.documentation.builders.PathSelectors
import springfox.documentation.builders.RequestHandlerSelectors
import springfox.documentation.service.ApiInfo
import springfox.documentation.spi.DocumentationType
import springfox.documentation.spring.web.plugins.Docket
import springfox.documentation.swagger2.annotations.EnableSwagger2

@Configuration
@EnableSwagger2
class Swagger{


@Bean
fun createRestApi():Docket{
var docket = Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.groupName("业务系统API接口文档")
.select()
.apis(RequestHandlerSelectors.basePackage("com.kotliner.demo"))
.paths(PathSelectors.any())
.build();
return docket;
}

fun apiInfo():ApiInfo{

var api = ApiInfoBuilder()
.title("业务系统名称")
.description("swagger2构建框架restfull API文档")
.contact("猫")
.version("1.0")
.termsOfServiceUrl("")
.build();
return api;

}


}
conroller添加swagger2注解
 
目前只使用了@Api,@ApiOperation,@ApiPara,添加完成后我们就可以启动了。
 
package com.kotliner.demo.controller

import com.kotliner.demo.entity.CaOrder
import com.kotliner.demo.mapper.OrderMapper
import com.kotliner.demo.service.ICaOrderService
import io.swagger.annotations.*
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.web.bind.annotation.*

@Api(value = "order",description = "订单业务")
@RestController
class OrderController{

@Autowired
lateinit var service: ICaOrderService;
@Autowired
lateinit var mapper: OrderMapper


@ApiOperation(value = "订单查询",notes = "订单列表查询")
@RequestMapping(value = "/findAllOrder",method = arrayOf(RequestMethod.POST))
fun findAllOrder(@ApiParam(name="order",value = "订单",required = true) @RequestBody order: CaOrder):List<CaOrder>{
return service.findAllOrder(order);
}

@ApiOperation(value = "订单查询",notes = "订单列表查询")
@RequestMapping(value = "/find",method = arrayOf(RequestMethod.POST))
fun find(@ApiParam(name="order",value = "订单",required = true) @RequestBody order: CaOrder):String{
var orders: List<CaOrder> = mapper.findOrderList(order);


return "ssssssssssss"+orders.toString();
}

@ApiOperation(value = "新增订单",notes = "新增订单")
@RequestMapping(value = "/save",method = arrayOf(RequestMethod.POST))
fun save(@ApiParam(name="order",value = "订单",required = true) @RequestBody order: CaOrder):Int{
return service.saveOrder(order);
}

@ApiOperation(value = "修改订单",notes = "修改订单")
@RequestMapping(value = "/update",method = arrayOf(RequestMethod.POST))
fun update(@ApiParam(name="order",value = "订单",required = true) @RequestBody order: CaOrder):Int{
return service.updateOrder(order);
}


@ApiOperation(value = "根据id删除订单",notes = "根据id删除订单")
@RequestMapping(value = "/delete",method = arrayOf(RequestMethod.GET))
fun delete(@ApiParam(name="id",value = "订单id",required = true) @RequestParam(value = "id") id:Int){
service.deleteOrder(id);
}
}访问

输入http://localhost:8090/demo/swagger-ui.html地址就可以看到了,新版本的swagger界面做了改版。 查看全部
添加依赖

在之前的的项目添加这些swagger2依赖的类
 
   <dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
注意:本文只是简单的做集成,目前尝试可以正常启动显示接口信息,但是对于部分嵌套的注解添加会报错,目前还没找到解决方案。 @APiresponses()和@ApiImplicitParams()使用时回报错。
 
添加swagger2配置类

这个配置springboot中使用swagger2类似
package com.kotliner.demo
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import springfox.documentation.builders.ApiInfoBuilder
import springfox.documentation.builders.PathSelectors
import springfox.documentation.builders.RequestHandlerSelectors
import springfox.documentation.service.ApiInfo
import springfox.documentation.spi.DocumentationType
import springfox.documentation.spring.web.plugins.Docket
import springfox.documentation.swagger2.annotations.EnableSwagger2

@Configuration
@EnableSwagger2
class Swagger{


@Bean
fun createRestApi():Docket{
var docket = Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.groupName("业务系统API接口文档")
.select()
.apis(RequestHandlerSelectors.basePackage("com.kotliner.demo"))
.paths(PathSelectors.any())
.build();
return docket;
}

fun apiInfo():ApiInfo{

var api = ApiInfoBuilder()
.title("业务系统名称")
.description("swagger2构建框架restfull API文档")
.contact("猫")
.version("1.0")
.termsOfServiceUrl("")
.build();
return api;

}


}

conroller添加swagger2注解
 
目前只使用了@Api,@ApiOperation,@ApiPara,添加完成后我们就可以启动了。
 
package com.kotliner.demo.controller

import com.kotliner.demo.entity.CaOrder
import com.kotliner.demo.mapper.OrderMapper
import com.kotliner.demo.service.ICaOrderService
import io.swagger.annotations.*
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.web.bind.annotation.*

@Api(value = "order",description = "订单业务")
@RestController
class OrderController{

@Autowired
lateinit var service: ICaOrderService;
@Autowired
lateinit var mapper: OrderMapper


@ApiOperation(value = "订单查询",notes = "订单列表查询")
@RequestMapping(value = "/findAllOrder",method = arrayOf(RequestMethod.POST))
fun findAllOrder(@ApiParam(name="order",value = "订单",required = true) @RequestBody order: CaOrder):List<CaOrder>{
return service.findAllOrder(order);
}

@ApiOperation(value = "订单查询",notes = "订单列表查询")
@RequestMapping(value = "/find",method = arrayOf(RequestMethod.POST))
fun find(@ApiParam(name="order",value = "订单",required = true) @RequestBody order: CaOrder):String{
var orders: List<CaOrder> = mapper.findOrderList(order);


return "ssssssssssss"+orders.toString();
}

@ApiOperation(value = "新增订单",notes = "新增订单")
@RequestMapping(value = "/save",method = arrayOf(RequestMethod.POST))
fun save(@ApiParam(name="order",value = "订单",required = true) @RequestBody order: CaOrder):Int{
return service.saveOrder(order);
}

@ApiOperation(value = "修改订单",notes = "修改订单")
@RequestMapping(value = "/update",method = arrayOf(RequestMethod.POST))
fun update(@ApiParam(name="order",value = "订单",required = true) @RequestBody order: CaOrder):Int{
return service.updateOrder(order);
}


@ApiOperation(value = "根据id删除订单",notes = "根据id删除订单")
@RequestMapping(value = "/delete",method = arrayOf(RequestMethod.GET))
fun delete(@ApiParam(name="id",value = "订单id",required = true) @RequestParam(value = "id") id:Int){
service.deleteOrder(id);
}
}
访问

输入http://localhost:8090/demo/swagger-ui.html地址就可以看到了,新版本的swagger界面做了改版。

Kotlin+SpringBoot服务端restful框架搭建(1)

后台开发Cat 发表了文章 • 0 个评论 • 432 次浏览 • 2018-04-01 15:52 • 来自相关话题

       本文的组要目的是完成SpringBoot集成Kotlin的一个基本项目构建,通过这个例子能够对kotlin有一个简单的了解。与其看着枯燥的教程,看看它的使用也许会更有意思。

kotlin简介
      Kotlin是一个基于JVM的编程语言,由JetBrains设计开发并开源。Kotlin可以编译成Java字节码也可以编译成JavaScript,支持开发Android,并且谷歌已经明确将Kotlin作为Android的一级开发语言。最新的Spring5版本也专门引入了对于Kotlin的支持。Kotlin拥有更简洁的代码,完全兼容java,而且同java可以实现完全的互调。使用Kotlin你起码可以少些30%的代码。
 
要求
JDK 1.8maven构建Spring4IDEA IntellijKotlin 1.2.31
 
快速构建
 
首先构建一个maven项目,我们命名为KotlinDemo。(使用idea构建Kotlin项目需要按照Kotlin的插件。)
1.先来修改pom.xml添加需要使用的依赖。 引入spring-boot-starter-parent,这里使用1.5.6版本
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
</parent>添加需要的依赖
<properties>
<java.version>1.8</java.version>
<mybatis.spring.version>1.2.4</mybatis.spring.version>
<kotlin.compiler.incremental>true</kotlin.compiler.incremental>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<kotlin.version>1.2.31</kotlin.version>
</properties><dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jre8</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-reflect</artifactId>
<version>${kotlin.version}</version>
</dependency>
在build中添加插件
 
<plugin>
<artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId>
<version>1.2.31</version>
<configuration>
<compilerPlugins>
<plugin>spring</plugin>
</compilerPlugins>
<jvmTarget>1.8</jvmTarget>
</configuration>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>test-compile</id>
<phase>test-compile</phase>
<goals>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-allopen</artifactId>
<version>1.2.31</version>
</dependency>
</dependencies>
</plugin>
2.创建application.yml
server:
context-path: /kotlin
port: 80903.创建Application.kt文件
 
       创建类的方法同java相似,也是引入各种包,但是需要注意Kotlin的main方法是class外面和java的main方法区别

        添加spring的注解@RestController和@SpringBootApplication,我们在class里面创建一个简单的restfull格式的请求方法hello(),方法返一个String的字符串。

       添加@RequestMapping时候需要注意设置method的时候,这里method接收的是一个数组,不是RequestMethod.GE,所以我们需要通过kotlin提供的arrayOf()方法转换一个下,这是一个创建数据的方法,具体的可以参考一下kotlin的文档。

       注意一下 SpringApplication.run中参数这个和java的区别有点大
 
Application.kt类代码
 
package demo

import org.springframework.boot.SpringApplication
@RestController
@SpringBootApplication
class Application{

@RequestMapping(value = "/hello",method =arrayOf(RequestMethod.GET))
fun hello(): String {

return "hello kotlin";

}
}

fun main(args: Array<String>){

//::符号是得到这个类的class对象
SpringApplication.run(Application::class.java,*args);

}3.项目基本搭建完成,试试启动项目访问http://localhost:8090/demo/hello,页面会返回hello kotlin。





 
 
  查看全部
       本文的组要目的是完成SpringBoot集成Kotlin的一个基本项目构建,通过这个例子能够对kotlin有一个简单的了解。与其看着枯燥的教程,看看它的使用也许会更有意思。

kotlin简介
      Kotlin是一个基于JVM的编程语言,由JetBrains设计开发并开源。Kotlin可以编译成Java字节码也可以编译成JavaScript,支持开发Android,并且谷歌已经明确将Kotlin作为Android的一级开发语言。最新的Spring5版本也专门引入了对于Kotlin的支持。Kotlin拥有更简洁的代码,完全兼容java,而且同java可以实现完全的互调。使用Kotlin你起码可以少些30%的代码
 
要求
  • JDK 1.8
  • maven构建
  • Spring4
  • IDEA Intellij
  • Kotlin 1.2.31

 
快速构建
 
首先构建一个maven项目,我们命名为KotlinDemo。(使用idea构建Kotlin项目需要按照Kotlin的插件。)
1.先来修改pom.xml添加需要使用的依赖。 引入spring-boot-starter-parent,这里使用1.5.6版本
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
</parent>
添加需要的依赖
 <properties>
<java.version>1.8</java.version>
<mybatis.spring.version>1.2.4</mybatis.spring.version>
<kotlin.compiler.incremental>true</kotlin.compiler.incremental>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<kotlin.version>1.2.31</kotlin.version>
</properties>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jre8</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-reflect</artifactId>
<version>${kotlin.version}</version>
</dependency>
在build中添加插件
 
<plugin>
<artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId>
<version>1.2.31</version>
<configuration>
<compilerPlugins>
<plugin>spring</plugin>
</compilerPlugins>
<jvmTarget>1.8</jvmTarget>
</configuration>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>test-compile</id>
<phase>test-compile</phase>
<goals>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-allopen</artifactId>
<version>1.2.31</version>
</dependency>
</dependencies>
</plugin>
2.创建application.yml
server:
context-path: /kotlin
port: 8090
3.创建Application.kt文件
 
       创建类的方法同java相似,也是引入各种包,但是需要注意Kotlin的main方法是class外面和java的main方法区别

        添加spring的注解@RestController和@SpringBootApplication,我们在class里面创建一个简单的restfull格式的请求方法hello(),方法返一个String的字符串。

       添加@RequestMapping时候需要注意设置method的时候,这里method接收的是一个数组,不是RequestMethod.GE,所以我们需要通过kotlin提供的arrayOf()方法转换一个下,这是一个创建数据的方法,具体的可以参考一下kotlin的文档。

       注意一下 SpringApplication.run中参数这个和java的区别有点大
 
Application.kt类代码
 
package demo

import org.springframework.boot.SpringApplication
@RestController
@SpringBootApplication
class Application{

@RequestMapping(value = "/hello",method =arrayOf(RequestMethod.GET))
fun hello(): String {

return "hello kotlin";

}
}

fun main(args: Array<String>){

//::符号是得到这个类的class对象
SpringApplication.run(Application::class.java,*args);

}
3.项目基本搭建完成,试试启动项目访问http://localhost:8090/demo/hello,页面会返回hello kotlin。

a.png

 
 
 

Kotlin+SpringBoot服务端restful框架搭建(1)

后台开发Cat 发表了文章 • 0 个评论 • 432 次浏览 • 2018-04-01 15:52 • 来自相关话题

       本文的组要目的是完成SpringBoot集成Kotlin的一个基本项目构建,通过这个例子能够对kotlin有一个简单的了解。与其看着枯燥的教程,看看它的使用也许会更有意思。

kotlin简介
      Kotlin是一个基于JVM的编程语言,由JetBrains设计开发并开源。Kotlin可以编译成Java字节码也可以编译成JavaScript,支持开发Android,并且谷歌已经明确将Kotlin作为Android的一级开发语言。最新的Spring5版本也专门引入了对于Kotlin的支持。Kotlin拥有更简洁的代码,完全兼容java,而且同java可以实现完全的互调。使用Kotlin你起码可以少些30%的代码。
 
要求
JDK 1.8maven构建Spring4IDEA IntellijKotlin 1.2.31
 
快速构建
 
首先构建一个maven项目,我们命名为KotlinDemo。(使用idea构建Kotlin项目需要按照Kotlin的插件。)
1.先来修改pom.xml添加需要使用的依赖。 引入spring-boot-starter-parent,这里使用1.5.6版本
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
</parent>添加需要的依赖
<properties>
<java.version>1.8</java.version>
<mybatis.spring.version>1.2.4</mybatis.spring.version>
<kotlin.compiler.incremental>true</kotlin.compiler.incremental>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<kotlin.version>1.2.31</kotlin.version>
</properties><dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jre8</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-reflect</artifactId>
<version>${kotlin.version}</version>
</dependency>
在build中添加插件
 
<plugin>
<artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId>
<version>1.2.31</version>
<configuration>
<compilerPlugins>
<plugin>spring</plugin>
</compilerPlugins>
<jvmTarget>1.8</jvmTarget>
</configuration>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>test-compile</id>
<phase>test-compile</phase>
<goals>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-allopen</artifactId>
<version>1.2.31</version>
</dependency>
</dependencies>
</plugin>
2.创建application.yml
server:
context-path: /kotlin
port: 80903.创建Application.kt文件
 
       创建类的方法同java相似,也是引入各种包,但是需要注意Kotlin的main方法是class外面和java的main方法区别

        添加spring的注解@RestController和@SpringBootApplication,我们在class里面创建一个简单的restfull格式的请求方法hello(),方法返一个String的字符串。

       添加@RequestMapping时候需要注意设置method的时候,这里method接收的是一个数组,不是RequestMethod.GE,所以我们需要通过kotlin提供的arrayOf()方法转换一个下,这是一个创建数据的方法,具体的可以参考一下kotlin的文档。

       注意一下 SpringApplication.run中参数这个和java的区别有点大
 
Application.kt类代码
 
package demo

import org.springframework.boot.SpringApplication
@RestController
@SpringBootApplication
class Application{

@RequestMapping(value = "/hello",method =arrayOf(RequestMethod.GET))
fun hello(): String {

return "hello kotlin";

}
}

fun main(args: Array<String>){

//::符号是得到这个类的class对象
SpringApplication.run(Application::class.java,*args);

}3.项目基本搭建完成,试试启动项目访问http://localhost:8090/demo/hello,页面会返回hello kotlin。





 
 
  查看全部
       本文的组要目的是完成SpringBoot集成Kotlin的一个基本项目构建,通过这个例子能够对kotlin有一个简单的了解。与其看着枯燥的教程,看看它的使用也许会更有意思。

kotlin简介
      Kotlin是一个基于JVM的编程语言,由JetBrains设计开发并开源。Kotlin可以编译成Java字节码也可以编译成JavaScript,支持开发Android,并且谷歌已经明确将Kotlin作为Android的一级开发语言。最新的Spring5版本也专门引入了对于Kotlin的支持。Kotlin拥有更简洁的代码,完全兼容java,而且同java可以实现完全的互调。使用Kotlin你起码可以少些30%的代码
 
要求
  • JDK 1.8
  • maven构建
  • Spring4
  • IDEA Intellij
  • Kotlin 1.2.31

 
快速构建
 
首先构建一个maven项目,我们命名为KotlinDemo。(使用idea构建Kotlin项目需要按照Kotlin的插件。)
1.先来修改pom.xml添加需要使用的依赖。 引入spring-boot-starter-parent,这里使用1.5.6版本
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
</parent>
添加需要的依赖
 <properties>
<java.version>1.8</java.version>
<mybatis.spring.version>1.2.4</mybatis.spring.version>
<kotlin.compiler.incremental>true</kotlin.compiler.incremental>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<kotlin.version>1.2.31</kotlin.version>
</properties>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jre8</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-reflect</artifactId>
<version>${kotlin.version}</version>
</dependency>
在build中添加插件
 
<plugin>
<artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId>
<version>1.2.31</version>
<configuration>
<compilerPlugins>
<plugin>spring</plugin>
</compilerPlugins>
<jvmTarget>1.8</jvmTarget>
</configuration>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>test-compile</id>
<phase>test-compile</phase>
<goals>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-allopen</artifactId>
<version>1.2.31</version>
</dependency>
</dependencies>
</plugin>
2.创建application.yml
server:
context-path: /kotlin
port: 8090
3.创建Application.kt文件
 
       创建类的方法同java相似,也是引入各种包,但是需要注意Kotlin的main方法是class外面和java的main方法区别

        添加spring的注解@RestController和@SpringBootApplication,我们在class里面创建一个简单的restfull格式的请求方法hello(),方法返一个String的字符串。

       添加@RequestMapping时候需要注意设置method的时候,这里method接收的是一个数组,不是RequestMethod.GE,所以我们需要通过kotlin提供的arrayOf()方法转换一个下,这是一个创建数据的方法,具体的可以参考一下kotlin的文档。

       注意一下 SpringApplication.run中参数这个和java的区别有点大
 
Application.kt类代码
 
package demo

import org.springframework.boot.SpringApplication
@RestController
@SpringBootApplication
class Application{

@RequestMapping(value = "/hello",method =arrayOf(RequestMethod.GET))
fun hello(): String {

return "hello kotlin";

}
}

fun main(args: Array<String>){

//::符号是得到这个类的class对象
SpringApplication.run(Application::class.java,*args);

}
3.项目基本搭建完成,试试启动项目访问http://localhost:8090/demo/hello,页面会返回hello kotlin。

a.png

 
 
 

Kotlin+SpringBoot服务端restful框架搭建(3)简单集成swagger2

后台开发Cat 发表了文章 • 3 个评论 • 443 次浏览 • 2018-04-04 15:46 • 来自相关话题

添加依赖

在之前的的项目添加这些swagger2依赖的类
 
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>注意:本文只是简单的做集成,目前尝试可以正常启动显示接口信息,但是对于部分嵌套的注解添加会报错,目前还没找到解决方案。 @APiresponses()和@ApiImplicitParams()使用时回报错。
 
添加swagger2配置类

这个配置springboot中使用swagger2类似
package com.kotliner.demo
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import springfox.documentation.builders.ApiInfoBuilder
import springfox.documentation.builders.PathSelectors
import springfox.documentation.builders.RequestHandlerSelectors
import springfox.documentation.service.ApiInfo
import springfox.documentation.spi.DocumentationType
import springfox.documentation.spring.web.plugins.Docket
import springfox.documentation.swagger2.annotations.EnableSwagger2

@Configuration
@EnableSwagger2
class Swagger{


@Bean
fun createRestApi():Docket{
var docket = Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.groupName("业务系统API接口文档")
.select()
.apis(RequestHandlerSelectors.basePackage("com.kotliner.demo"))
.paths(PathSelectors.any())
.build();
return docket;
}

fun apiInfo():ApiInfo{

var api = ApiInfoBuilder()
.title("业务系统名称")
.description("swagger2构建框架restfull API文档")
.contact("猫")
.version("1.0")
.termsOfServiceUrl("")
.build();
return api;

}


}
conroller添加swagger2注解
 
目前只使用了@Api,@ApiOperation,@ApiPara,添加完成后我们就可以启动了。
 
package com.kotliner.demo.controller

import com.kotliner.demo.entity.CaOrder
import com.kotliner.demo.mapper.OrderMapper
import com.kotliner.demo.service.ICaOrderService
import io.swagger.annotations.*
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.web.bind.annotation.*

@Api(value = "order",description = "订单业务")
@RestController
class OrderController{

@Autowired
lateinit var service: ICaOrderService;
@Autowired
lateinit var mapper: OrderMapper


@ApiOperation(value = "订单查询",notes = "订单列表查询")
@RequestMapping(value = "/findAllOrder",method = arrayOf(RequestMethod.POST))
fun findAllOrder(@ApiParam(name="order",value = "订单",required = true) @RequestBody order: CaOrder):List<CaOrder>{
return service.findAllOrder(order);
}

@ApiOperation(value = "订单查询",notes = "订单列表查询")
@RequestMapping(value = "/find",method = arrayOf(RequestMethod.POST))
fun find(@ApiParam(name="order",value = "订单",required = true) @RequestBody order: CaOrder):String{
var orders: List<CaOrder> = mapper.findOrderList(order);


return "ssssssssssss"+orders.toString();
}

@ApiOperation(value = "新增订单",notes = "新增订单")
@RequestMapping(value = "/save",method = arrayOf(RequestMethod.POST))
fun save(@ApiParam(name="order",value = "订单",required = true) @RequestBody order: CaOrder):Int{
return service.saveOrder(order);
}

@ApiOperation(value = "修改订单",notes = "修改订单")
@RequestMapping(value = "/update",method = arrayOf(RequestMethod.POST))
fun update(@ApiParam(name="order",value = "订单",required = true) @RequestBody order: CaOrder):Int{
return service.updateOrder(order);
}


@ApiOperation(value = "根据id删除订单",notes = "根据id删除订单")
@RequestMapping(value = "/delete",method = arrayOf(RequestMethod.GET))
fun delete(@ApiParam(name="id",value = "订单id",required = true) @RequestParam(value = "id") id:Int){
service.deleteOrder(id);
}
}访问

输入http://localhost:8090/demo/swagger-ui.html地址就可以看到了,新版本的swagger界面做了改版。 查看全部
添加依赖

在之前的的项目添加这些swagger2依赖的类
 
   <dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
注意:本文只是简单的做集成,目前尝试可以正常启动显示接口信息,但是对于部分嵌套的注解添加会报错,目前还没找到解决方案。 @APiresponses()和@ApiImplicitParams()使用时回报错。
 
添加swagger2配置类

这个配置springboot中使用swagger2类似
package com.kotliner.demo
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import springfox.documentation.builders.ApiInfoBuilder
import springfox.documentation.builders.PathSelectors
import springfox.documentation.builders.RequestHandlerSelectors
import springfox.documentation.service.ApiInfo
import springfox.documentation.spi.DocumentationType
import springfox.documentation.spring.web.plugins.Docket
import springfox.documentation.swagger2.annotations.EnableSwagger2

@Configuration
@EnableSwagger2
class Swagger{


@Bean
fun createRestApi():Docket{
var docket = Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.groupName("业务系统API接口文档")
.select()
.apis(RequestHandlerSelectors.basePackage("com.kotliner.demo"))
.paths(PathSelectors.any())
.build();
return docket;
}

fun apiInfo():ApiInfo{

var api = ApiInfoBuilder()
.title("业务系统名称")
.description("swagger2构建框架restfull API文档")
.contact("猫")
.version("1.0")
.termsOfServiceUrl("")
.build();
return api;

}


}

conroller添加swagger2注解
 
目前只使用了@Api,@ApiOperation,@ApiPara,添加完成后我们就可以启动了。
 
package com.kotliner.demo.controller

import com.kotliner.demo.entity.CaOrder
import com.kotliner.demo.mapper.OrderMapper
import com.kotliner.demo.service.ICaOrderService
import io.swagger.annotations.*
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.web.bind.annotation.*

@Api(value = "order",description = "订单业务")
@RestController
class OrderController{

@Autowired
lateinit var service: ICaOrderService;
@Autowired
lateinit var mapper: OrderMapper


@ApiOperation(value = "订单查询",notes = "订单列表查询")
@RequestMapping(value = "/findAllOrder",method = arrayOf(RequestMethod.POST))
fun findAllOrder(@ApiParam(name="order",value = "订单",required = true) @RequestBody order: CaOrder):List<CaOrder>{
return service.findAllOrder(order);
}

@ApiOperation(value = "订单查询",notes = "订单列表查询")
@RequestMapping(value = "/find",method = arrayOf(RequestMethod.POST))
fun find(@ApiParam(name="order",value = "订单",required = true) @RequestBody order: CaOrder):String{
var orders: List<CaOrder> = mapper.findOrderList(order);


return "ssssssssssss"+orders.toString();
}

@ApiOperation(value = "新增订单",notes = "新增订单")
@RequestMapping(value = "/save",method = arrayOf(RequestMethod.POST))
fun save(@ApiParam(name="order",value = "订单",required = true) @RequestBody order: CaOrder):Int{
return service.saveOrder(order);
}

@ApiOperation(value = "修改订单",notes = "修改订单")
@RequestMapping(value = "/update",method = arrayOf(RequestMethod.POST))
fun update(@ApiParam(name="order",value = "订单",required = true) @RequestBody order: CaOrder):Int{
return service.updateOrder(order);
}


@ApiOperation(value = "根据id删除订单",notes = "根据id删除订单")
@RequestMapping(value = "/delete",method = arrayOf(RequestMethod.GET))
fun delete(@ApiParam(name="id",value = "订单id",required = true) @RequestParam(value = "id") id:Int){
service.deleteOrder(id);
}
}
访问

输入http://localhost:8090/demo/swagger-ui.html地址就可以看到了,新版本的swagger界面做了改版。

Kotlin+SpringBoot服务端restful框架搭建(1)

后台开发Cat 发表了文章 • 0 个评论 • 432 次浏览 • 2018-04-01 15:52 • 来自相关话题

       本文的组要目的是完成SpringBoot集成Kotlin的一个基本项目构建,通过这个例子能够对kotlin有一个简单的了解。与其看着枯燥的教程,看看它的使用也许会更有意思。

kotlin简介
      Kotlin是一个基于JVM的编程语言,由JetBrains设计开发并开源。Kotlin可以编译成Java字节码也可以编译成JavaScript,支持开发Android,并且谷歌已经明确将Kotlin作为Android的一级开发语言。最新的Spring5版本也专门引入了对于Kotlin的支持。Kotlin拥有更简洁的代码,完全兼容java,而且同java可以实现完全的互调。使用Kotlin你起码可以少些30%的代码。
 
要求
JDK 1.8maven构建Spring4IDEA IntellijKotlin 1.2.31
 
快速构建
 
首先构建一个maven项目,我们命名为KotlinDemo。(使用idea构建Kotlin项目需要按照Kotlin的插件。)
1.先来修改pom.xml添加需要使用的依赖。 引入spring-boot-starter-parent,这里使用1.5.6版本
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
</parent>添加需要的依赖
<properties>
<java.version>1.8</java.version>
<mybatis.spring.version>1.2.4</mybatis.spring.version>
<kotlin.compiler.incremental>true</kotlin.compiler.incremental>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<kotlin.version>1.2.31</kotlin.version>
</properties><dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jre8</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-reflect</artifactId>
<version>${kotlin.version}</version>
</dependency>
在build中添加插件
 
<plugin>
<artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId>
<version>1.2.31</version>
<configuration>
<compilerPlugins>
<plugin>spring</plugin>
</compilerPlugins>
<jvmTarget>1.8</jvmTarget>
</configuration>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>test-compile</id>
<phase>test-compile</phase>
<goals>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-allopen</artifactId>
<version>1.2.31</version>
</dependency>
</dependencies>
</plugin>
2.创建application.yml
server:
context-path: /kotlin
port: 80903.创建Application.kt文件
 
       创建类的方法同java相似,也是引入各种包,但是需要注意Kotlin的main方法是class外面和java的main方法区别

        添加spring的注解@RestController和@SpringBootApplication,我们在class里面创建一个简单的restfull格式的请求方法hello(),方法返一个String的字符串。

       添加@RequestMapping时候需要注意设置method的时候,这里method接收的是一个数组,不是RequestMethod.GE,所以我们需要通过kotlin提供的arrayOf()方法转换一个下,这是一个创建数据的方法,具体的可以参考一下kotlin的文档。

       注意一下 SpringApplication.run中参数这个和java的区别有点大
 
Application.kt类代码
 
package demo

import org.springframework.boot.SpringApplication
@RestController
@SpringBootApplication
class Application{

@RequestMapping(value = "/hello",method =arrayOf(RequestMethod.GET))
fun hello(): String {

return "hello kotlin";

}
}

fun main(args: Array<String>){

//::符号是得到这个类的class对象
SpringApplication.run(Application::class.java,*args);

}3.项目基本搭建完成,试试启动项目访问http://localhost:8090/demo/hello,页面会返回hello kotlin。





 
 
  查看全部
       本文的组要目的是完成SpringBoot集成Kotlin的一个基本项目构建,通过这个例子能够对kotlin有一个简单的了解。与其看着枯燥的教程,看看它的使用也许会更有意思。

kotlin简介
      Kotlin是一个基于JVM的编程语言,由JetBrains设计开发并开源。Kotlin可以编译成Java字节码也可以编译成JavaScript,支持开发Android,并且谷歌已经明确将Kotlin作为Android的一级开发语言。最新的Spring5版本也专门引入了对于Kotlin的支持。Kotlin拥有更简洁的代码,完全兼容java,而且同java可以实现完全的互调。使用Kotlin你起码可以少些30%的代码
 
要求
  • JDK 1.8
  • maven构建
  • Spring4
  • IDEA Intellij
  • Kotlin 1.2.31

 
快速构建
 
首先构建一个maven项目,我们命名为KotlinDemo。(使用idea构建Kotlin项目需要按照Kotlin的插件。)
1.先来修改pom.xml添加需要使用的依赖。 引入spring-boot-starter-parent,这里使用1.5.6版本
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
</parent>
添加需要的依赖
 <properties>
<java.version>1.8</java.version>
<mybatis.spring.version>1.2.4</mybatis.spring.version>
<kotlin.compiler.incremental>true</kotlin.compiler.incremental>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<kotlin.version>1.2.31</kotlin.version>
</properties>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jre8</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-reflect</artifactId>
<version>${kotlin.version}</version>
</dependency>
在build中添加插件
 
<plugin>
<artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId>
<version>1.2.31</version>
<configuration>
<compilerPlugins>
<plugin>spring</plugin>
</compilerPlugins>
<jvmTarget>1.8</jvmTarget>
</configuration>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>test-compile</id>
<phase>test-compile</phase>
<goals>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-allopen</artifactId>
<version>1.2.31</version>
</dependency>
</dependencies>
</plugin>
2.创建application.yml
server:
context-path: /kotlin
port: 8090
3.创建Application.kt文件
 
       创建类的方法同java相似,也是引入各种包,但是需要注意Kotlin的main方法是class外面和java的main方法区别

        添加spring的注解@RestController和@SpringBootApplication,我们在class里面创建一个简单的restfull格式的请求方法hello(),方法返一个String的字符串。

       添加@RequestMapping时候需要注意设置method的时候,这里method接收的是一个数组,不是RequestMethod.GE,所以我们需要通过kotlin提供的arrayOf()方法转换一个下,这是一个创建数据的方法,具体的可以参考一下kotlin的文档。

       注意一下 SpringApplication.run中参数这个和java的区别有点大
 
Application.kt类代码
 
package demo

import org.springframework.boot.SpringApplication
@RestController
@SpringBootApplication
class Application{

@RequestMapping(value = "/hello",method =arrayOf(RequestMethod.GET))
fun hello(): String {

return "hello kotlin";

}
}

fun main(args: Array<String>){

//::符号是得到这个类的class对象
SpringApplication.run(Application::class.java,*args);

}
3.项目基本搭建完成,试试启动项目访问http://localhost:8090/demo/hello,页面会返回hello kotlin。

a.png