单例模式经典写法:懒汉式,饿汉模式,双重校验锁,静态内部类,枚举等。
more >>自己搞一套观察者模式的代码,还是有点小麻烦。实际上,Guava EventBus
就封装好了,它 提供一套基于注解的事件总线,api 可以灵活的使用,爽歪歪。
使用过 Spring Data 操作 ES 的小伙伴应该有所了解,它只能实现一些非常基本的数据管理工作,一旦遇到稍微复杂点的查询,基本都要依赖 ES 官方提供的 RestHighLevelClient,Spring Data 只是在其基础上进行了简单的封装。最近发现一款更优雅的 ES ORM 框架 Easy-Es
,使用它能像 MyBatis-Plus 一样操作 ES。
根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢?
建议改用LIMIT 1,让数据库查询时遇到一条就返回,不要再继续查找还有多少条了。
more >>API 开放接⼝设计之 appId,appSecret,accessToken
more >>MySQL字符集和排序规则在使用中需要注意的点
在建表时字符集设置成:utf8mb4
。
排序规则 utf8mb4_general_ci ,对字母的大小写不敏感。而 utf8mb4_bin 排序规则,对字符大小写敏感,也就是区分大小写。由此,字符排序规则一定要根据实际的业务场景选择,否则容易出现问题。
more >>Spring Retry 为 Spring 应用程序提供了声明性重试支持。它用于 Spring 批处理、Spring 集成、Apache Hadoop (等等)。它主要是针对可能抛出异常的一些调用操作,进行有策略的重试。
Guava retryer 工具与 spring-retry 类似,都是通过定义重试者角色来包装正常逻辑重试,但是 Guava retryer 有更优的策略定义,在支持重试次数和重试频度控制基础上,能够兼容支持多个异常或者自定义实体对象的重试源定义,让重试功能有更多的灵活性。
spring-retry 和 guava-retry 工具都是线程安全的重试,能够支持并发业务场景的重试逻辑正确性。两者都很好的将正常方法和重试方法进行了解耦,可以设置超时时间、重试次数、间隔时间、监听结果、都是不错的框架。
但是明显感觉得到,guava-retry 在使用上更便捷,更灵活,能根据方法返回值来判断是否重试,而 Spring-retry 只能根据抛出的异常来进行重试。
more >>一个公司产品矩阵比较丰富的时候,用户在不同系统之间来回切换,固然对产品用户体验上较差,并且增加用户密码管理成本。也没有很好地利用内部流量进行用户打通,并且每个产品的独立体系会导致产品安全度下降。因此实现集团产品的单点登录对用户使用体验以及效率提升有很大的帮助。
本文是基于Session机制实现SSO的,JWT机制可参考实现。
more >>tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true