c#分页_使用Kotlin搭配Springboot开发RESTFul接口(二)自定义配置、跨域、分页
前言
上一篇文章請看這里:使用Kotlin搭配Springboot開發RESTFul接口與服務部署
上一篇文章介紹了Kotlin搭配Springboot的開發流程,從搭建項目、ORM、Controller到Swagger集成和docker部署都有,不過大師說我那篇文章太多代碼了,吹水太少了,于是我決定再水一篇,介紹一下Web開發中常用的幾種操作。
在做完這個簡單的系統,Kotlin搭配Springboot給我的感受就是,挺爽的,Springboot本身就是一套傻瓜式的解決方案,要什么功能全部gradle down下來然后注冊一下,美滋滋,這就完事了,唯一不足的地方是這些都在Java這個垃圾語言下才能實現,每次用Java都有種吃*的感覺,特別惡心。
寫一個簡單的data class需要我每個字段配上該死的get和set方法,不知道這是哪個睿智的大佬發明的,看到這里可能有些小伙伴要說可以用Lombok實現自動生成get和set方法,我笑了,被坑過的人都懂。
至于null啊、泛型、值類型引用類型什么鬼亂七八糟的臭**,我就不多說什么了。
PS:喜歡Java的同學別噴,以上只是個人感受,語言只是賺錢的工具,只要錢給夠,要我用易語言都沒問題 (逃~
好了,可以進入正題了
自定義配置
自定義配置有兩種,放在application.yml中,或者是自定義的文件里面,這里我配置比較少,放在application.yml里就行了。
我的配置:
onecat:然后在configuration包中定義一個類:
import?org.springframework.beans.factory.使用 object 關鍵字定義的類是靜態類,這樣其他地方可以直接調用:
OneCatConfig.pageSize就這么完事了
跨域問題
跨域是Web開發中老生常談的問題,解決辦法很多,我只選最簡單的,過個過濾器,在每個相應中加個header,松松
在 filter 包中新建一個過濾器:
@WebFilter(filterName?=?"CorsFilter")就這么也完事了,Springboot自動配置真滴方便。
分頁
接下來介紹分頁,我相信,Springboot生態中一定有很多分頁組件,但我并沒有用,能自己實現的,就不要用第三方組件~
首先我在 ViewModels 中定義了一個Page類,代碼如下:
data?然后我用了Ktorm的sequence操作,有drop和take這兩個方法,映射到SQL語句就是limit操作。
代碼如下:
@ApiOperation("獲取用戶列表")就是這樣,也很簡單實現。
這里吐槽一下Ktorm的作者,太坑了,他在GitHub給的例子代碼里面關于分頁的操作是錯的,一開始我被誤導了,后面自己改了代碼,給原作者的代碼填坑 = = ?真難
ViewModel
其實剛才介紹分頁的時候已經有用到 ViewModel 了,不過Page只是一個單純data class,這里的ViewModel我要對傳入的數據進行進一步的操作。
比如下面的代碼,對每種類型下的裝備數量和可用裝備進行統計。
class?EquipmentGroupViewModel(這樣就OK了,一次測試通過,Kotlin好用就完事了
總結
Springboot香是挺香的,Kotlin這語言也挺好用,就是比起C#還是差點感覺,JVM限制了它的發揮,不過也是借著JVM的生態,kotlin才能上位,畢竟和Java可以無縫互調訪問,這個體驗,大家懂的,以后的Java項目也許都可以慢慢轉Kotlin(并不)
只不過這個Ktorm給我有些不太好的體驗,小坑啊,論ORM,DjangoORM第一,EFCore第二,能自動遷移實在是方便,你喜歡自己寫SQL的靈活,我喜歡直接映射的方便,各取所需吧。
語言之爭沒有意義,面向工資編程才是真的,有人覺得JavaWeb開發錢多,屁顛屁顛就去學Java,無可厚非,有人喜歡.net core的965和一頭秀發,那也是一種追求。至于Python、Rails on Ruby這類腳本語言來Web開發,更是優秀,項目做完錢到手就跑路(我瞎說的哈哈哈,你猜我為啥那么喜歡Python?)
歡迎交流
我整理了一系列的技術文章和資料,在公眾號「程序設計實驗室」后臺回復 linux、flutter、c#、netcore、android、java、python 等可獲取相關技術文章和資料,同時有任何問題都可以在公眾號后臺留言~
總結
以上是生活随笔為你收集整理的c#分页_使用Kotlin搭配Springboot开发RESTFul接口(二)自定义配置、跨域、分页的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 局部钩子能防全局钩子吗_阿特的钩子成为队
- 下一篇: vs code vue插件_干货分享 |