kotlin springboot(java和kotlin哪个更值得学)

本文目录
- java和kotlin哪个更值得学
- Kotlin + Spring Boot 使用@Value读取配置文件
- springboot 使用scala 开发
- [Kotlin]SpringBoot 获取原生HTTP Request内容实例化model
java和kotlin哪个更值得学
java。
1、个人建议学习java,比如你不懂Java,如何比较跟理解static与伴生对象﹖你要调用Comparator你会不会一脸懵逼? Data Class转成的Java 代码你会不会分析? JavaBean概念懂吗﹖前者解决了后者什么问题?
Kotlin 默认Class 不是Open的,有何影响﹖特别是跟一些框架如Spring配合有哪些坑需要填?这些你不懂Java你就解决不了,你就只能写写“Hello World”。
2、只有用惯了Java而又想继续改进工作效率(或者为了寻求刺激)的人,才会真正去“用”Kotlin。而且为了更好的用,会发展出一堆的best practice。这些工具或者SOP,绝大多数会首先考虑如何重用Java已有的东西,然后在此之上考虑怎么做得比Java效率更高。
那些没有Java基础,没写过几年Java的人,一上手Kotlin,不会觉得这玩意儿有多好用。而且Java初学者要踩的坑,他基本上要一个不漏用Kotlin再踩一次,而且因为用的不是直接Java,所以解决起来反而更困难。
3、语言本身没什么不可以,问题出在两个地方一个是文档,现有的文档基本都假设你已经有Java基础了,所以对于完全不懂Java的人来说未必很好理解。
另一个是各种库和框架,绝大部分JVM下的库和框架都是针对Java设计的,用Kotlin总需要转换下格式什么的,如果你完全不懂Java这一步可能就走不下去了。
Kotlin + Spring Boot 使用@Value读取配置文件
TL;DR
在做的一个项目遇到这个问题,需要把server.host存在application.properties里面,但是在取value 的时候遇到了问题,总是提示 ”lateinit property *** has not been initialized“,找遍了和so 都没有太好的答案,多方参考以后终于才解决这个小问题。
这个问题的存在是因为在spring 跑到@service class的时候,我们还没有取到配置文件里面的value, 所以导致了spring 认为这个value variable没有initialize。
解决方案就是把你要取的value放到class的constructor里面去,下面提供一个简单的example。
-application.properties
-Service.kt
Reference:
Kotlin Doc - Constructor
Another code example
springboot 使用scala 开发
咋说呢 ,还是使用scala做springboot开发比较流畅一些
按道理来说根据打包模式 maven sbt gradle来说三种方式都可以
maven 是最简单的
gradle 也比较简单,但是我并没有尝试gradle
sbt 其实也还可以 ,你要找到方向基本就直到套路了,经过参考别人的博客,自己搭建了个demo 验证是可以正常使用的,不过maven 版的打jar 使用还是有点问题,我尝试使用多种方式指定主函数还是有问题
两种方式的我都上传到了github上,大家如果想模仿学习 可以git clone 下来泡一泡
***隐藏网址***
***隐藏网址***
另外搭建逻辑 大家可以参考这篇博客 google搜出来的
***隐藏网址***
需要主要的,现在的springboot 的版本是2.0.5 release ,之前都是1.× ,不过大同小异,
springboot 本身是支持 java 8 kotlin groovy,大家也可以尝试一下 kotlin ,kotlin 以后可能会崛起
说一下打包部署
正常来说我们做java 都会打个jar包 部署到生产环境上,
springboot 据说他打包的文件生成方式和普通的 是有差别的,确实,我点击jar 解压看到的和普通有很大差别,所以才会有一个 springboot-maven-plugin
有了这个插件所以 springboot部署成jar包比较简单
但是吧 springboot对sbt 没有特殊支持 也没有这个插件,我耗费三体还是没有实现主就是报这个错
那我们说 springboot sbt scala 部署到底如何实现呢
其实在不打jar 包的情况下还是有多种实现的,比如 git 整个项目到生产环境,直接sbt run 就可以启动整个项目
,另外还要说一下,springboot如果不启动web ,比如做定时任务,使用sbt-assembly插件 其实打成jar包也是可以使用的
还有一种就是是使用sbt-native-package插件,这个插件超级强大,简直可以用震惊!!!,他娘的,什么都可以打包,就是打不成jar包,rpm docker image zip tar.gz
macos dmg win exe,这些他都可以
参考
***隐藏网址***
I solved the issue by moving to sbt-native-packager
plugins.sbt
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.2.0")
build.sbt
scriptClasspath := Seq("*")
mainClass in Compile := Some("com.x.app.XETL")
enablePlugins(JavaAppPackaging)
Running:
packaging sbt universal:stage
starting the app: target\universal\stage\bin\x.bat
这个会生产一个脚本,直接执行这个脚本就可以,不过有时候也会失败,这个需要在
对于 maven scala springboot 项目来说,要想打成jar包运行,必须包含其中的两个maven 插件,缺一个也不行
完整的
在 IDEA 里面新建 SpringBoot 启动配置,运行后启动成功。
在 POM 目录 执行 mvn spring-boot:run 运行项目,启动成功;
线下环境 通过 java -jar jar_name.jar,运行成功;
***隐藏网址***
***隐藏网址***
用下面命令重新打包试试看
mvn clean package spring-boot:repackage -Dmaven.test.skip
在sbt 中
这两个是罪魁祸首
一引用就出问题
[Kotlin]SpringBoot 获取原生HTTP Request内容实例化model
背景:
SpringBoot日常开发中不需要接触原生HTTP Request,框架本身已经实现了request请求自动转化model/vo/dto对象,但有时特殊场景需要获取、操纵原生HTTP Request内容。
Kotlin实现:
在Controller中通过如下方式可以获取到HTTP Request并转为JSON格式
进而,可以获取 jacksonObjectMapper ,然后实例化对应model,此处应该有一些业务逻辑,否则直接通过SpringBoot框架在controller中自动实例化即可。

更多文章:
跷二郎腿太低好吗?想要通过贴墙站改正二郎腿影响的话,有哪些要点需要注意
2026年10月11日 05:10
易语言点击js按钮(易语言网页填表怎样点击链接为“javascript:void(0)“的按钮)
2026年10月11日 03:00
compare with造句(用compared with和compared to造句)
2026年10月10日 23:30
tensorflow与keras对应版本(为什么tensorflow2.8没有keras)
2026年10月10日 22:10





