专栏首页一个会写诗的程序员的博客《Springboot极简教程》Springboot使用Kotlin和Java混合编程配置工程目录结构让kotlin代码的归kotlin目录,java代码归java目录Java代码Kotlin代码互相

《Springboot极简教程》Springboot使用Kotlin和Java混合编程配置工程目录结构让kotlin代码的归kotlin目录,java代码归java目录Java代码Kotlin代码互相

配置

要想实现Springboot使用Kotlin和Java混合编程,需要使用kotlin插件:

spring-boot-gradle-plugin kotlin-gradle-plugin

具体配置如下:

apply {
    plugin "kotlin"
    plugin "kotlin-spring"
    plugin "kotlin-jpa"
    plugin "org.springframework.boot"
    plugin 'java'
    plugin 'eclipse'
    plugin 'idea'
    plugin 'war'
    plugin 'maven'
}

sourceSets {
    main {
        kotlin { srcDir "src/main/kotlin" }
        java { srcDir "src/main/java" }
    }
    test {
        kotlin { srcDir "src/test/kotlin" }
        java { srcDir "src/test/java" }
    }
}


buildscript {
    ext {
        kotlinVersion = '1.1.0'
        springBootVersion = '1.5.2.RELEASE'
    }

    dependencies {
        classpath "org.springframework.boot:spring-boot-gradle-plugin:$springBootVersion"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
        classpath "org.jetbrains.kotlin:kotlin-noarg:$kotlinVersion"
        classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlinVersion"
    }

}


dependencies {
    compile("org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion")
    compile("org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion")
    compile("com.fasterxml.jackson.module:jackson-module-kotlin:2.8.4")
    ...

}

完整的配置参考: https://github.com/Jason-Chen-2017/restfeel/blob/master/build.gradle

工程目录结构

工程目录

完整的工程目录,可以参考:

https://github.com/Jason-Chen-2017/restfeel

把工程git clone下来,命令行tree一下,即可看到。

让kotlin代码的归kotlin目录,java代码归java目录

比如说,我们把SpringBoot启动类放到kotlin下面:

package com.restfeel

import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.CommandLineRunner
import org.springframework.boot.SpringApplication
import org.springframework.core.env.Environment

/**
 * Created by jack on 2017/3/29.
 * @author jack
 * @date 2017/03/29
 */
@RestFeelBoot
class RestFeelApplicationKotlin : CommandLineRunner {
    @Autowired
    private val env: Environment? = null

    override fun run(vararg args: String?) {
        println("RESTFEEL 启动完毕")
        println("应用地址:" + env?.getProperty("application.host-uri"))
    }
}

fun main(args: Array<String>) {
    SpringApplication.run(RestFeelApplicationKotlin::class.java, *args)
}

执行

gradle bootRun

系统会正常运行的。

Java代码Kotlin代码互相调用

我们放到后面单独的一章来讲。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 第13章 Kotlin 集成 SpringBoot 服务端开发(1)第13章 Kotlin 集成 SpringBoot 服务端开发

    本章介绍Kotlin服务端开发的相关内容。首先,我们简单介绍一下Spring Boot服务端开发框架,快速给出一个 Restful Hello World的示例...

    一个会写诗的程序员
  • 《Kotlin极简教程》第2章 快速开始:HelloWorld

    我们在本章将介绍使用Kotlin程序设计语言,分别使用命令行、应用程序、Web RESTFul、Android、Kotlin JavaScript等方式向世界问...

    一个会写诗的程序员
  • Kotlin集成 SpringBoot 混合Java库开发

    apply plugin: 'org.springframework.boot' apply plugin: 'kotlin'

    一个会写诗的程序员
  • Android开发:Kotlin下配置DataBinding

    近日,随着Google召开了Google I/O 2017,Kotlin大火一把。因为Google宣布Kotlin为First-class开发语言作 为一名Ko...

    JarvanMo
  • 如何用kotlin开发同时支持iOS和Android的库

    虽说kotlin-native可以支持链接到c,java,objective-c等语言,甚至可以进行原生开发,但是在使用的过程中并不友好,配置繁琐且api相对生...

    Leacode
  • 使用Spring Boot和Kotlin创建RESTfull API

    使用 Kotlin 结合 SpringBoot 开发一个 RESTFul版本的 HelloWorld。

    全科
  • Gradle Kotlin DSL 的 accessors 生成问题

    如果你想用 gradle kotlin DSL,那么请注意,accessors 的支持从 0.8.0 开始(gradle 3.5),后续也做了一些完善和更新,目...

    bennyhuo
  • sigar进行JAVA后台系统资源监控错误:java.lang.UnsatisfiedLinkError

    Windows系统下载这三个文件:sigar-amd64-winnt.dll、sigar-x86-winnt.dll、sigar-x86-winnt.lib。放...

    浩Coding
  • Kotlin热身篇: 简介与基本用法

    Kotlin 拥有强大的生态,因为 Kotlin 是一门跑在 Java 虚拟机上的函数式语言,完全符合 JVM 的设计规范,如: 类型擦除,装箱和拆箱等等。所以...

    小木箱
  • kotlin, 一种新的android平台一级开发语言

    今天看到一则科技新闻, 大致内容是google将kotlin语言作为android应用开发的一级语言, 与java并驾齐驱, 这是一个开发界的大事件大新闻, 连...

    用户1608022

扫码关注云+社区

领取腾讯云代金券