2017-11-04 高悦翔
在做企业微信应用开发的时候,有使用第三方单点登录的需求。根据企业微信的文档,设置好登录授权发起域名和回调域名后,编写了一个Controller,用来重定向到微信的接口。但重定向后总是得到校验请求来源错误的提示信息。 之后,修改Controller,使用response返回一个标签,链接地址指向微信接口。这次,点击链接,可以成功的看到二维码,并且能够成功扫码登录。 继续阅读 »
2017-10-25 高悦翔
Java Validation简介 javax.validation包提供了大量用于验证数据的API工具,可以帮助开发者方便的检验程序的输入输出。最近刚刚接触到这方的知识,还只知道使用其提供的注解工具。 想要使用这个工具,需要导入这个包。以gradle为例: 继续阅读 »
2017-03-06 高悦翔
函数对象 JavaScript中函数就是对象. 函数对象连接到Function.prototype. 当把一个函数当作构造函数(使用new关键字)使用时, 新创建的对象的原型就是该函数的prototype对象. 我们可以通过给prototype设置属性而达到让该类对象拥有同样的公共属性的目的. 继续阅读 »
2017-03-04 高悦翔
前两章介绍基础, 没什么笔记好记录. 这是第三章. 什么是对象 在JavaScript中, 除了简单数据类型(数字, 字符串, 布尔值, null和undefined), 其他所有的值都是对象Object. 其中number string和boolean虽然拥有方法, 但他们并不是object, 因为他们是不可变的. 继续阅读 »
2017-02-20 高悦翔
本书第六章的读书笔记,也是我这个系列的最后一篇读书笔记。后面7、8、9章分别讲的“测试、调试与重构”、“设计和架构的原则”以及“使用Lambda表达式编写并发程序”,因为笔记不好整理,就不写了,感兴趣的同学自己买书来看吧。 并行化流操作 继续阅读 »
2017-02-10 高悦翔
本章是该书的第五章, 主要讲了方法引用和收集器 方法引用 形如: java artist -> artist.getName() (String arg) -> arg.length() 这样的表达式, 可以简写为: 继续阅读 »
2017-02-08 高悦翔
本书第四章的读书笔记, 本章主要阐述: 如何使用Lambda表达式. 基本类型 考虑到装箱类型过于占用内存, JDK提供了针对基本类型的操作, 以达到优化的效果, 如mapToLong方法. 对基本类型做特殊处理的方法在命名上有明确规范: 继续阅读 »
2017-02-06 高悦翔
本文是「Java 8 函数式编程」第三章的读书笔记,章名为流。本章主要介绍了外部迭代与内部迭代以及常用的高阶函数。 外部迭代与内部迭代 外部迭代 过去我们要对一个List进行迭代时,往往会采用如下方式: java int count = 0; for (Artist artist : artists) { if (artist.isFrom("London")) { count++; } } 继续阅读 »
2017-02-05 高悦翔
本文是「Java 8 函数式编程」第二章的读书笔记。 Lambda引入的变化 Lambda表达式,是一种紧凑的、传递行为的方式,从编程思想上来讲,就是代码即数据。 过去的Java中,存在大量的匿名内部类的使用,会新建一个匿名内部类传入调用的方法中。这种传统的方式,会造成冗余的、不易阅读的代码。 继续阅读 »
2016-11-20 高悦翔
doc {:toc} 一开始使用spring拦截器拦截请求记录日志,对于请求路径、header这些都很好获取,唯独POST请求无法获取其中的RequestBody. 原因很明显,RequestBody是只能读取一次的,如果在拦截器中读取了,就无法通过@RequestBody注解去获取,因为这个数据是内存中的流数据. 继续阅读 »