graphql-java
不会哭的年轻人是野蛮人,不想笑的老年人是傻瓜——桑塔亚娜 前两天写了graphql的简单介绍博客 今天来拿java简单入个门,首先新建一个项目,因为我这里是用我自己熟悉的方式去写,所以包含了一些看不懂的写法,过两天在写一个保姆级教程 项目地址:https://gitee.com/VampireAchao/simple-graphql 运行springboot主启动类,然后访问 http://localhost:8080/ 可以看到这样一个页面 我们可以在左侧编写graphql的查询语句,点击运行按钮,比如分页查询用户 123456789101112131415{ users(current: 1, size: 2) { current size total records { id name roles { id roleName } } }} 这里这些字段如果不清楚,可以点右侧的Docum...
gridsome
礼仪周全能宁人息事——茹贝尔 gridsome是一个基于 Vue.js 构建的 Jamstack 框架 官方文档:https://www.gridsome.cn/ 这个可以帮助我们快速建造一个网站,其特点是graphql,不需要服务端,开发快、性能好,前端人员大爱 不过吐槽一下,点击中文文档竟然是英文的。。。 借助翻译插件还是能勉强看懂,哈哈 这个翻译插件是沙拉查词
GraphQL
可怕的不是外貌的丑陋,而是无法与人亲近的内心空虚——科恩 官网:https://graphql.org/ graphql是一个API的查询语言,可以理解为一个规范 正如它官方文档宣传的那样: 定义你的数据规范(数据类型) Describe your data12345type Project { name: String tagline: String contributors: [User]} 描述你想干什么(查询) Ask for what you want12345{ project(name: "GraphQL") { tagline }} 获得预期结果(只获得你需要的结果) Get predictable results12345{ "project": { "tagline": "A query language for APIs" }} 它有多种语言的库...
echarts关系图
交一个读破万卷书邪士,不如交一个不识一字端人——金缨 案例地址:https://echarts.apache.org/examples/zh/editor.html?c=graph&version=5.3.3 点击下方下载示例即可下载: 我这里也根据文档写了个demo: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120<!-- 此示例下载自 https://echarts.apache.org/examples/zh/editor.html?c=graph--><!DOCTYPE html>&l...
服务器新jdk报错Assistive Technology not found: org.GNOME.Accessibility.AtkWrapper
寒暄是人际关系的润滑剂——大卫·汉生 打开 1/etc/java-8-openjdk/accessibility.properties 注释第一行配置: 即可
对mysql存时间坑
夫妻间应由互相认识而了解,进而由彼此容忍而敬爱,才能维持一个美满的婚姻——巴尔扎克 今天发现一个问题,mysql中时间戳过大,会自动到下一天。。。 可以将毫秒值设置为0再存入,之后正常
three.js
阿谀奉承而无所图的人极少;爱奉承的话,就免不了要付出代价——佚名 一个js的3D库 git仓库:https://github.com/mrdoob/three.js 官网:https://threejs.org/ 其中包含了很多案例 甚至有用它做游戏:
中缀表示法
无意苦争春,一任群芳妒。零落成泥碾作尘,只有香如故。——陆游 文档 中缀表示法能让我们定义一些“关键字” 标有 infix 关键字的函数也可以使用中缀表示法(忽略该调用的点与圆括号)调用。中缀函数必须满足以下要求: 它们必须是成员函数或扩展函数; 它们必须只有一个参数; 其参数不得接受可变数量的参数且不能有默认值。 1234567infix fun Int.shl(x: Int): Int { …… }// 用中缀表示法调用该函数1 shl 2// 等同于这样1.shl(2) 代码如下: 1234567891011121314infix fun Int?.default(x: Int): Int = this ?: xinfix fun String?.default(x: String): String { return this ?: x}// 用中缀表示法调用该函数1 default 0// 等同于这样null.default(0)"1".default("x")null.def...
操作符重载
游客是你,风景是我,无法避免,让你经过。——《稀客》 中文文档 kotlin里我们可以进行操作符重载,以达到对象+对象、-对象这样的操作: 12345678910111213141516171819// 定义一个类data class Point(val x: Int, val y: Int)// 对其进行操作符重载,让其能够使用-Point()语法operator fun Point.unaryMinus() = Point(-x, -y)val point = Point(10, 20)println(-point) // 输出“Point(x=-10, y=-20)”// 对String进行操作符重载,让其能够使用 +"" 语法operator fun String.unaryPlus() = this + thisprintln(+"x")// 对其进行二元操作符重载,使其可以使用 Point() + Point() 语法operator fun Point.plus(s: Point) = Point(this.x + s....
拓展函数
对于聪明人来说,劝告是多余的;对于愚昧人来说,劝告是不够的——莫里哀 中文文档 拓展函数的定义: 1fun String.delBlank() = this.filter { !Character.isWhitespace(it) } 以及: 123fun Int?.default(i: Int = 0) = ifun String?.default(i: String = "") = i 使用: 123456789101112fun String.delBlank() = this.filter { !Character.isWhitespace(it) }val noBlank = "Hello World".delBlank()println(noBlank)fun Int?.default(i: Int = 0) = ifun String?.default(i: String = "") = ival s: Int? = nullprintln(s.default...
