当前位置: 首页>编程语言>正文

spring源码中kotlin版本号 kotlin开发springboot

写在最前头,作为一个java老兵,对于开发更多的是追求一种快直接,简洁,不愿意去写无聊的代码,例如get set 等。而kotlin刚出来的时候,不咋感冒,毕竟其开始是编译成javascript的,对于一个非前端的死忠,还是不怎么感冒的。近期偶然机会看到有android开发使用kotlin的,而且展示了一段java和kotlin的获取view的代码,立马提起了兴趣,由于我是做服务端的,在一阵度娘后,发现了这篇文章,于是自己将原有springboot工程改写成了kotlin和java的混编项目。于是乎,觉得还是翻译一下吧。

然后啰嗦一下,这篇不是翻译,只捡干货。

kotlin是什么

1、kotlin是流行的ide idea的公司 jetbeans出的一种基于jvm的语言

2、它是静态编译的语言,然后有许多的动态语言特性,让你的代码更简洁和清晰

3、它有个外号 swift on android,如同ios的swift语言一样,也如同swift之于objective-c。

    所以用它做android开发很爽,号称减少起码一半的代码

4、有些很吸引java老兵的特性,data class 自动生成get set,在也不用写get set方法,虽然eclipse等能帮我生成,但保不齐实体会改,总要补一枪。

       扩展,能不用继承就可以扩展类的方法,从此不在为一堆的utils犯愁了。

5、和java有很好的互操作性,可以直接使用java已有的框架和类库,哪样舒服哪样来。

springboot项目引入kotlin

1、pom.xml中加入依赖和plugin

     如果用idea 的话,直接config kotlin工程就行

spring源码中kotlin版本号 kotlin开发springboot,spring源码中kotlin版本号 kotlin开发springboot_ide,第1张

也就是加入了


<         dependency         >        


                  <         groupId         >org.jetbrains.kotlin</         groupId         >        


                  <         artifactId         >kotlin-stdlib</         artifactId         >        


                  <         version         >${kotlin.version}</         version         >        


         </         dependency         >


和maven的plugin


<         plugin         >        


                  <         groupId         >org.jetbrains.kotlin</         groupId         >        


                  <         artifactId         >kotlin-maven-plugin</         artifactId         >        


                  <         version         >${kotlin.version}</         version         >        


                  <         executions         >        


                  <         execution         >        


                  <         id         >compile</         id         >        


                  <         phase         >compile</         phase         >        


                  <         goals         >        


                  <         goal         >compile</         goal         >        


                  </         goals         >        


                  <         configuration         >        


                  <         sourceDirs         >${project.basedir}/src/main/kotlin</         sourceDirs         >        


                  </         configuration         >        


                  </         execution         >        


                  <         execution         >        


                  <         id         >test-compile</         id         >        


                  <         phase         >test-compile</         phase         >        


                  <         goals         >        


                  <         goal         >test-compile</         goal         >        


                  </         goals         >        


                  <         configuration         >        


                  <         sourceDirs         ></         sourceDirs         >        


                  </         configuration         >        


                  </         execution         >        


                  </         executions         >        


         </         plugin         >


当然了我在src/main下建立了一个kotlin目录用于存放kotlin代码

然后你就可以new 一个 kotlin 文件了,文件名称随意。

来个control的例子


@RestController
class CustomerController (val repository:CustomerRepository) {

	@GetMapping("/")
	fun findAll() = repository.findAll()

	@GetMapping("/{name}")
	fun findByLastName(@PathVariable name:String)
		= repository.findByLastName(name)}


是不是很熟悉啊,springboot里的注解直接使用。

例如@Bean @Autowired 等都是一样一样的

也就是说你想吧springboot的application等代码改成kotlin是完全可行的,只是语法有点区别,其它都一样

注意点:

1、kotlin注解不支持数组的方式。必须改换成如下写法

@RequestMapping(method = arrayOf(RequestMethod.GET)) @EnableAutoConfiguration(exclude = arrayOf(Foo::class)).

2、属性注入需要转义符号\,因为kotlin自身支持模板$

@Value("${some.property}").

3、对于bean和需要被事务管理的,比如biz service之流,在class前面加上open。因为kotlin默认类是final。

@Component
 open class MyTestBizImp :MyTestBiz{
 
    override fun doFirst(){
      ....
     }
 }

java怎么调用kotlin

比如是用mybatis,使用到mapper xml文件这个时候

使用package 名+类名就行了和java是一致的。例如

package xx.xx.xx
 class MyEntity {
   var name:String =""
 }
 
 interface TestMapper {
 
 }

这样mybatis的mapper接口定义及使用到的实体均可以使用kotlin来编写。

最后就是用idea,其中自带kotlin编辑器,拷贝java代码到kotlin编辑器,它会自动把java代码转成kotlin的 so cool。

总结

   作为一个具有强迫症和洁癖的开发来说,使用kotlin来编写业务代码是一种比较可行的方式,尤其是混编模式下,旧有的功能代码不用调整,极大的保护了资产和提供了尝试的可行性。

  其简洁的语法尤其适应于业务代码的编写,哪些interface和其imp可以丢在一个文件里了,反正也没别的模块用^_^


https://www.xamrdz.com/lan/5kz1935478.html

相关文章: