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接口(二)自定义配置、跨域、分页相关推荐
- SpringBoot开发Restful接口
1.说明 基于已经创建好的Spring Boot工程, 开发Restful风格的接口, 并且对外提供HTTP服务. Spring Boot工程创建方式有两种: Maven向导方式:SpringBoot ...
- SpringBoot开发Restful风格的接口实现CRUD功能
一.前言 我们都知道SpringBoot的出现使得在开发web项目的时候变得更加方便.快捷.之前写过一篇文章是如何快速搭建一个springboot项目:SpringBoot入门:使用IDEA和Ecli ...
- vue如何配置服务器端跨域_vue开发环境配置跨域,一步到位
本文要实现的是:使用vue-cli搭建的项目在开发时配置跨域,上线后不做任何任何修改,接口也可以访问 阅读时间需要三分钟 production:产品 生产环境 development:开发 开发环境 ...
- 实现uniapp的app和小程序开发中能使用axios进行跨域网络请求,并支持携带cookie
实现uniapp的app和小程序开发中能使用axios进行跨域网络请求,并支持携带cookie 1-使用npm install axios;命令安装axios 2-新建一个文件夹再建一个.js后缀文件 ...
- SpringBoot配置跨域 修改默认json序列化
SpringBoot配置跨域 修改默认json序列化 修改跨域 addCorsMappings(CorsRegistry registry)方法添加跨域设置的,无法生效,原因是请求经过的先后顺序问题, ...
- 技能学习:学习使用php(tp6框架) + vue.js,开发前端全栈网站-4.跨域且传输数据,并优化后端接口
技能学习:学习使用php(tp6框架) + vue.js,开发前端全栈网站-4.优化后端接口,前端使用axios实现接口功能 技能学习:学习使用php(tp6框架) + vue.js,开发前端全栈网站 ...
- springboot增删改查案例_大神基于SpringBoot开发一个Restful服务,实现增删改查功能...
前言 在去年的时候,在各种渠道中略微的了解了SpringBoot,在开发web项目的时候是如何的方便.快捷.但是当时并没有认真的去学习下,毕竟感觉自己在Struts和SpringMVC都用得不太熟练. ...
- Springboot2 D3 SpringBoot开发实用篇 - 热部署 - 配置高级 - 测试
SpringBoot开发实用篇 运维实用篇完结以后,开发实用篇采用日更新的形式发布给各位小伙伴,基本上是每天一集,目前已经发布完毕. 开发实用篇中因为牵扯到SpringBoot整合各种各样的技 ...
- SpringBoot 配置 跨域支持
跨域资源共享(CORS,请求协议,请求地址,请求端口三者必须相同才是同一服务器,否则都要进行跨域操作)标准新增了一组 HTTP 首部字段,允许服务器声明哪些源站有权限访问哪些资源.另外,规范要求,对那 ...
最新文章
- Apache搭建多个站点方法详解
- priorityqueue 的 add和offer方法有区别吗_日常在家安吉白茶应该如何去保存?城市与农村存放的方法有区别吗...
- 懒人必备!只需一行代码,就能导入所有的Python库
- php 打印错误 display,php错误display及error_reporting的使用
- 24安装失败 spss win10_教你win10系统显卡驱动安装失败的解决方法「系统天地」
- matlab中sum(w.),matlab中sum
- jenkins+phantomjs环境搭建及使用
- 印象笔记剪藏html,印象笔记使用剪藏功能的详细操作
- ViewPage的使用与介绍
- 平面几何----用角平分线逆定理证明阿氏圆定理
- 手机edge浏览器无法打开三方应用
- 《win10自带的输入法怎样把繁体字模式改成简体字模式》
- vulnhub靶场,bulldog1
- Gillette!Gillette!
- 2020CSP初赛试题答案解析
- 采用预训练模型来训练新的模型
- HTML中通过js 自定义一个鼠标悬停后立刻显示的Title(附效果图)
- js中sort()字母排序和自定义多列排序
- 离散数学概论---(8)图论:图的基本概念
- 【C语言答案】第四次练习---循环进阶
热门文章
- 汇编指令prefix rep:
- C++ 学习之函数重载、基于const的重载
- 【Boost】boost库中bind的用法
- MySQL 备份与主从复制
- 字符串匹配算法(一):BF(BruteForce)算法和RK(RabinKarp)算法
- 关于JUnit5 你必须知道的(一) JUnit5架构和环境搭建
- Mark一下 | 当当优惠码,实付满150减30 | + 荐书
- Kafka主题中的分区数越多吞吐量就越高?BULLSHIT!!!
- 曹大带我学 Go(5)—— 哪里来的 goexit
- Go Modules 的智障版本选择