YM Blog

Thinking will not overcome fear but action will.

再谈Swagger:配置OAuth2认证

Swagger的深入体验

距离上次使用Swagger已过去很久了,依稀记得上次使用还是在一个Java的Demo项目里,并且只是浅尝辄止。没想到过了这么久,我真正在生产项目中使用它,并且深度使用了一些核心功能,比如接口测试,比如权限验证。这次使用的是C#开发语言,DotNet的架构。 01|Swagger & Open API 1. OpenAPI 是什么? OpenAPI 规范(OAS) 是一种...

搭建个人博客过程中的小确幸

搭建个人博客是一个充满成就感的过程,乐于分享的程序员可能都希望拥有自己的个人博客。相比平台博客,个人博客拥有完整数据所有权,而且可以精简页面功能,应用喜欢的页面风格, 尝试各种Web技术。虽说个人博客最主要是内容输出即随时间积累产生的博客内容,但是有些功能可以使个人博客看着更加专业,给自己带来意想不到的小确幸。 01|评论系统(Disqus) 评论系统可以打破个人博客单向输出的缺陷,将静...

利用PN532在小米手环上模拟加密门禁卡

利用PN532在小米手环上模拟加密门禁卡 用小米手环直接模拟小区门禁卡时出现“该卡是加密卡,不支持模拟”的情况,门卡支持范围中也确实提示仅支持未经加密且频率为13.56MHz的门卡。无法模拟小区门禁卡这让小米手环NFC版瞬间失去了一半的价值,还有一半就是公交卡。为了充分发挥其作用,必须破解加密门禁卡。 什么是NFC呢?如何辨别NFC卡的类型? 近场通信(Near Field Commu...

异常引起的生产事故

异常引起的生产事故 异常是程序运行过程中发生的不正常或不符合预期的情况。异常处理则是编程语言或计算机硬件里面的一种机制,用于处理软硬件系统中的违背正常运作的情况。 之前一直认为异常处理机制不就是将异常抛出,或者将异常try-catch一下打印一下日志,没什么好深刻探讨的点,不明白为什么Java编程思想等编程语言书籍会将其单拎一章重点讲解。直到在生产环境中遇到了两次故障才警醒起来,...

MyBatis基础

MyBatis基础 官方文档 源码地址 00|简介 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 J...

LayUI基础

LayUI layui是面向后端开发者,它有自己的模式,更加轻量和简单。 官方文档 下载地址 示例代码 01|底层方法 全局配置:layui.config(options) 全局化配置一些参数 1 2 3 4 5 6 layui.config({ dir: '/res/layui/' //layui.js 所在路径(注意,如果是 script 单独引入...

Redis实战

Redis实战 NoSQL,泛指非关系型数据库,它们不保证数据的ACID(原子性、一致性、隔离性和持久性)特性。NoSQL有以下优点:易扩展,高并发读写性能,灵活的数据模型。 KV数据库: Redis,Voldemort,Oracle BDB 列存储数据库: Cassandra, HBase, Riak 文档型数据库: CouchDB, MongoDb...

Swagger初体验

Swagger教程 Swagger是一款Restful接口的文档在线自动生成+功能测试软件。Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化Restful风格的Web服务。 01|构建Swagger 1.引入依赖 1 2 3 4 5 6 7 8 9 10 11 12 <!-- swagger --> <dependency> <...

动态规划

动态规划(dynamic programming) 动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。基本思想是将问题的求解过程化为多步选择或决策的结果,在每一步决策上,列出各种可能的选择,舍去那些肯定不能成为最化解的局部解。最后一步得到的解必是最优解。其适合解决具有以下两个特性的问题。 ...

反射:运行时的类信息

反射:运行时的类信息 Java反射机制是在运行时,动态地提取某个类的信息,调用这个类的所有属性和方法,在编译时无需知道任何事情。 Class类与java.lang.reflect类库一起对反射进行了支持,该类库包含了Field、Method和Constructor类。这些类型的对象是由JVM在运行时创建的,用以表示未知类里对应的成员。可以使用Constructor来创建新的对象,...