krun

krun 查看完整档案

中山编辑广东理工职业学院  |  软件技术 编辑中山新丝路信息科技有限公司  |  Java 开发 编辑 krun.dev 编辑
编辑

喜欢挖坑造轮子

个人动态

krun 回答了问题 · 10月21日

jwt报错Token used before issued

用官网的在线解析把 token 解出来看看什么时间戳签发的.

大概率是时区问题.

关注 3 回答 2

krun 回答了问题 · 9月30日

java try with resource 难受

如果 getHandler 方法抛异常,你哪来的 api.

关注 4 回答 3

krun 回答了问题 · 9月8日

解决Typora 在本地写的网址超链接,在本地能打开吗?

这个跟它类不类似浏览器没关系,即便是浏览器也可以很轻松得禁用 a 标签的自动跳转或是用别的元素模拟出 a 的效果.

不让一点链接就跳转是因为作为编辑器有这样的场景:你发现网址打错了或者想换一个. 如果你一点网址就弹浏览器了那你怎么改,每次都要切到源码模式再改吗.

所以你按着 ctrl 键再去点链接,就会弹浏览器了,这是很多编辑器的通用做法.

关注 2 回答 1

krun 回答了问题 · 9月8日

解决Java Spring MVC 中的 `@RequestMapping` 是什么技术(原理 or 语法)?

这个是注解,但 Java 中的注解本身并不提供任何功能,它只是作为一种标记,需要额外的代码去处理它.

无论是编译期还是运行期,通过反射能拿到注解的代理实例,或者说注解的本质是一个接口(JDK 提供的代理 Proxy 只能代理接口). 你在注解里声明的所有属性都会作为接口上的方法由这个代理实例去托管. 这些方法去代理实例托管的一个 Map 里去这个代理实例里取值(同一个注解在不同代码位置上使用会产生不同的代理实例,每个代理实例维护一个 Map 用以保存各自的值).

关于运行时动态修改注解的值,可以参考我以前写的 文章,有的情况下会有限制,而且大多数时候处理注解的代码不一定每次都会从注解的代理实例中获取最新的值(即有缓存),所以也从侧面验证:注解本身并不提供特别的功能.

如果是编译期的注解,想处理就需要编写注解处理器(Annotation Processor),这个可以做到代码生成(lombok 等等)或一些其他基于源码的增强(也包括 AST 级别的代码检测);

如果是运行期的注解,想处理就有很多方式,比如最简单得,直接通过反射访问一个对象实例身上的注解;或是通过切面将注解视为一种标记点.

注解如果单纯视为标记的话其实跟接口从语义上来说的确没有太大区别. 但它的主要语义是『元信息』.

最后,@RequestMapping 的原理,并不是所谓的切面实现. Spring 启动过程中会注入所有的 @Component及相关注解,这是通过包扫描得到的,这些类会被 Spring 进行托管,在处理的过程中会有个初始化处理器、或类身上通过接口获得的 Bean 生命周期方法、或工厂用来对刚建立的对象实例进行增强(比如用代理包起来),其中 @Controller@RestController 这两个注解标记的类会在 RequestMappingHandlerMapping 里被搜集出来,进一步提取里面的公开非静态方法,如果方法上有 @RequestMapping 则称之为 HandlerMethod,然后有其他的步骤用来计算方法与路由的映射关系,最后汇总.

关注 4 回答 4

krun 回答了问题 · 9月7日

解决如何解决跨域?

这报错里说得是『你的 Acces-Control-Request-Headers 里的 code 字段是不被允许的.』

关注 3 回答 2

krun 回答了问题 · 9月7日

解决请问单元测试验证数据库时 , "推荐使用 docker 建立数据库 + 临时表方式吗?"

看你们要测的层到底是哪个.

如果是非数据层比如 Service,那直接 Mock 就好,因为这里不操心数据库,甚至都不用知道数据库的存在(你后面挂的存储是数据库还是 redis 还是个文本对这一层而言都无所谓).

如果是数据层比如 RepositoryDAO 等等, 上这一套方法是可以的,这里开始关心数据库的存在.

CI 集成时是全部测试都要跑一遍那按规范制度来就行;至于本机上,其实多数时候只是关心 SQL 结构、跑一些语句的问题,那么有几种办法:

  • 不关心方言,比如使用 HQL、JPQL 的情况下,可以用 H2 内存数据库跑测试;
  • 关心方言,测试环境配个数据库大家一起用,担心表冲突可以在本地配置相关的表名策略,比如 SpringPhysicalNamingStrategy 给每个人的表名后面加个后缀,配个 update 策略随应用结束自动删表就行. ( Spring Boot 测试环境的配置是可以独立的
  • 如果是其他技术栈,我就不太清楚,可能只能用你们现在已经成熟的这套东西,但是我个人觉得每个人都装 docker 环境还是比较浪费资源的.

关注 2 回答 1

krun 回答了问题 · 9月4日

解决常听人说 OLTP、OLAP 很重要,但日常工作为何都没碰过?

一般认为你说的 MS SQL Server、Oracle 就是 OLTP 类型的数据库.

OLAP 的一般认为是 ClickHouse 这一类『性能目的在于查询数据』类型的数据库.

在规模、人力、资金的约束下,OLTP 有时也会承担 OLAP 的功能,所以你可以看到 ClickHouse 的性能对比测试里还有 MySQL 的身影,但是因为从数据结构的设计上两者就大相庭径,所以 OLTP 可以做到 OLAP 的部分功能(如果考虑数据量级的话那其实多数情况下只有 OLAP 是解决方案,这个可以参考 ClickHouse 的性能对比测试说明),而 OLAP 由于不提供一致性等保证所以它不能提供 OLTP 的功能.

关注 2 回答 1

krun 回答了问题 · 9月4日

电脑重装系统,但是忘记备份hexo的blog本地库,现在我该如何恢复继续使用这个blog。

你这个仓库里的不是备份,是已经生成了的静态网站.

你可以去 windows.old 文件夹里找找看,不一定有.

关注 2 回答 1

krun 回答了问题 · 8月21日

下面链接中的这种动画的css代码是生成的还是手写的?手写的这也太强了吧!!

作为一个后端,听说有工具可以让设计师直接把动效从 AE(还是叫啥来着我忘了反正是 Adobe 家的) 之类的工具里导出 CSS. 至于导出来的代码是不是有你链接中那么可读我就不清楚了.

关注 2 回答 1

krun 回答了问题 · 8月19日

flutter 使用替换数组的方式渲染出了TextField 该怎么获取到其中的输入的值呢,特别是多个的时候

为它们分配 TextEditingController.

关注 2 回答 1

认证与成就

  • 获得 432 次点赞
  • 获得 17 枚徽章 获得 1 枚金徽章, 获得 5 枚银徽章, 获得 11 枚铜徽章

擅长技能
编辑

开源项目 & 著作
编辑

  • api-mock-handler

    基于 axios 和 mockjs 的 API 控制工具.

  • domain-mapping

    用于简化 handler method 与路由之间的绑定 emmm sf 说地址太长了所以放了个短链。 github地址:https://github.com/krunZhang/spring-extends/tree/master/domain-mapping

  • js-interface

    在 JS 中提供一些接口的能力

  • Juice

    一个简单的、练手性质的数据库工具

注册于 2017-09-17
个人主页被 4.1k 人浏览