自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 springboot websocket怎么通过shiro验证

shiro有几种认证方式,这里只说JSESSIONID方式,正常http请求JSESSIONID是放在cookie中传过去的,但是websocket貌似不能用header和cookie传递参数,所以只能想到用url传参试了下这种方式:ws://localhost:8730/deploy?jsessionid=43577A8AFB2A95A59BA10AABBD0F6AEB```非常遗憾,不行,只能看源码了,org.apache.catalina.connector.CoyoteAdapter确

2020-08-28 12:00:32 2080 2

原创 常用分布式事务解决方案分析

随着单体应用拆分以及微服务化,互联网公司的分布式事务场景已成常态,关于分布式事务的解决方案也是由来已久,比如Saga、XA、TCC、本地消息表等等,当然也有很多优秀的框架比如ByteTCC、TCC-transaction、EasyTransaction以及最近比较火的Seate,那么如何在众多方案中选择适合自己的呢,接下来我们分析下各方案的原理以及优缺点。一、XAXA协议分为两段提交和三段提交。准确讲XA是一个规范、协议,它只是定义了一系列的接口,只是目前大多数实现XA的都是数据库或者MQ,所以

2020-06-04 10:16:31 1099

原创 切面实现Dubbo请求日志以及全局异常处理

一、背景项目中经常会看到在所有的Rpc接口实现中记录请求参数,以及try catch,每个方法都来一次,看着就不舒服,类似下面这段代码public CloudServerResponse<Boolean> updateExpressInfo(SendAppraisalExpressParam sendAppraisalExpressParam) { log.info("updateExpressInfo:{}",JSON.toJSONString(sendAppraisal

2020-05-13 17:43:02 2499

原创 java全链路日志实现

java全链路日志实现什么是全链路日志实际项目架构具体实现要达到的效果合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入什么是全链路日志在线上项目运行期间,经常会出现各种莫名奇妙的bug,而且一个请求往往会经过多个项目的接口调用,比如电商中

2020-05-13 16:43:52 3708 2

原创 docx4j word转pdf解决中文乱码问题(包括宋体(正文))

docx4j 是个非常好用的docx操作包,我主要用来做docx转pdf,但是发现中文会有乱码,原因是因为word里面的中文字体名也是中文的,但是从本地字体库里面拿到的字体名是英文的,所以需要做个映射,这里注意如果是Linux,需要安装中文字体,把windows上的字体复制上去就行。后来还发现宋体(正文)和宋体(标题)还是乱码,网上也没找到答案,有人问了,但是没人回答,所以只能自己看日志和调试,...

2019-08-14 17:11:10 11530 11

原创 java 实现PHP unserialize接口,解决中文问题

最近用java重写php diszus的接口,碰到一堆的序列化字符串,如下: a:1:{i:220;a:4:{s:3:”uid”;s:3:”220”;s:8:”username”;s:10:”中国好男人”;s:5:”level”;s:1:”1”;s:6:”online”;i:0;}}试了几个类库后发现对有中文的字符串都会解析成乱码,原因是PHP对中文字符的解析是两个字符,java类库...

2018-06-29 15:08:22 1788

原创 利用Feign发post请求遇到的坑

背景最近转java,背靠公司java大神,利用spring cloud框架重构现有业务,新手遇坑是常事,也是喜闻乐见的,趟坑能让自己快速的学习成长。 Feign是一个声明式的Web服务客户端,使用Feign可使得Web服务客户端的写入更加方便。 具体的介绍就不多说了,直接看github就好,这里写链接内容 这里主要记录一下利用feign发送post请求时遇到的问题。问题重现...

2018-06-19 11:57:20 36878 4

原创 java spring统一异常处理——控制器通知

相信很多同学都跟我一样写过这样的代码: 这是一个在java控制器中处理异常的样例,运行起来也没什么问题。唯一的问题就是这有点复杂,这方法会有两种返回值,正常的和异常的,但其实我们通常只想关注正常的,像下面那样: 干净多了,但是异常情况怎么处理呢?spring为我们提供了一个非常方便的异常处理方案:控制器通知(controller advice),这其实是将所有的控制器作为一个切面,利用...

2018-05-29 15:16:44 943

原创 spring-boot中拦截器的使用

背景相信很多同行都有过做后台权限管理或者api token登陆态校验之类的经验,我最开始工作的时候就是做OA系统的,印象最深刻的就是角色权限管理,当时经验少,把权限和业务功能做的耦合度非常的高,常常会在一个action的业务逻辑里面加很多的if else来做权限的判断,这是一段痛苦的经历。最近开发的项目也有权限后台,提供出去的api要校验token判断登陆态,想起java应该是有拦截器的功能...

2018-05-25 11:20:10 835

原创 lombok @Slf4j注解

背景知道有这么个东西,是因为项目中用到了@Slf4j注解。 lombok库提供了一些注解来简化java代码 官网:http://projectlombok.org/ 查看lombok所有api:https://projectlombok.org/api/overview-summary.html几个常用的 lombok 注解:@Data:注解在类上;提供类所有属性的 gettin...

2018-05-24 17:12:52 97684 5

原创 java项目技术点整理

背景刚来杭州不久,以PHP入职新公司,发现杭州PHP环境实在艰难,全是java的天下,决心再转战java,这对于我来说并不是难事,毕竟我经历过.net, php,java,golang。。。然后再回到java,跟着市场走吧,反正我就是个万金油,哈哈。既然决心再转回java,当然要积极的去做java项目,由于我的积极响应,加上公司也准备转型java,所以最近用java开发了两个项目,主要是s...

2018-05-24 15:51:24 6743

原创 PHP和golang实现设计模式-建造者模式

PHP和golang实现设计模式-建造者模式建造者模式:是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 比方说造房子,房子有各种各样的,但是主要流程基本一样,圈地,打地基,砌墙,装修,基本上所有房子都是一样的流程。建造者模式的本质和建造楼房是一致的:即流程不变,但每个流程实现的具体细节则是经常变化的。建造者模式的好处就是保证了流程不会变化,流程即不会增加、也不会遗漏

2018-01-03 10:11:28 340

原创 PHP和golang实现设计模式-单例模式

单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。PHP实现:<?php class Singleton { //保存类实例的静态成员变量 private static

2017-11-10 15:29:12 322

原创 PHP和golang实现设计模式-抽象工厂模式

工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。PHP实现:<?phpdeclare(strict_types = 1);/** * 业务接口 */interfac

2017-11-08 14:57:31 285

原创 PHP和golang实现设计模式-工厂方法模式

工厂方法模式分为三种:1. 普通工厂模式普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。PHP实现<?phpdeclare(strict_types = 1);interface Sender{ public function send(string $msg);}class MailSender implements Sender{ public fu

2017-11-03 11:50:33 374

原创 以mongodb为数据源搭建ElasticSearch

由于项目中数据量太大,直接查询很慢,建立索引开销也挺大,所以考虑搭建个搜索引擎,考虑过solr,sphinx,最终还是选择了es,原因在于mongodb到es有一个现成的中间件mongo-connector,当然solr也可以用这个,不过ES貌似更有朝气点,主要是配置更简单,原谅我都没用过。。。第一次只能选择最简单的好了闲话休提,说正事。服务器14.04.1-Ubuntu 内存8G 4核CPU,

2017-10-13 16:58:16 5972

原创 微信语音amr文件转mp3

安装ffmpeg, 具体参考http://www.cnblogs.com/luojianqun/p/6291939.html本打算直接用ffmpeg来转换,但是发现会报错,后来在github上找到个大神写的东西 https://github.com/kn007/silk-v3-decoder 直接下载,解压,进入文件夹,运行sh converter.sh 8.amr mp3完美转换

2017-10-13 15:44:08 5364

原创 Mongodb存储特殊字符串报错的处理

最近在做一个sqlite导入到mongodb的事情,遇到一些问题,记录下。php7中mongodb的扩展变的跟php5完全不一样了,用起来特别麻烦,php5:http://php.net/manual/en/class.mongoclient.php, php7:http://php.net/manual/en/book.mongodb.phpmongodb存储特殊字符会报错 类似这种,具体有哪

2017-07-21 09:59:00 2916

原创 Mysql计数器表设计

应用中很多情况下会用到存储计数,比如存储一个用户的朋友数,文件下载数,点赞数之类的。创建一张独立的表存储计数器通常是个好主意, 这样可以使计数去表小且快。实用独立的表可以帮助避免查询缓存失效,并且可以使用一些高级的技巧来处理并发问题。

2017-05-26 13:32:49 584

原创 ubuntu上用apt安装php7.1的扩展

最近在配置linux的开发环境,因为对linux还是不太熟,遇到各种问题,记录了下

2017-05-05 10:08:29 8437 1

原创 sublime text 3 插件CodeFormatter 的配置以及MAC上升级php自带版本到php7

最近换工作后改用mac办公了,刚上手有点不熟悉,开发环境跟windows还是有点差别的,我做php开发用的sublime text 3,这个IDE好处就是炫,舒服,轻便,坏处就是安装各种各样的扩展,当然换个角度看这也是一大优点吧,更轻量级,按需要再加,所以我也安装了一大堆的扩展。 在安装完CodeFormatter(代码格式化插件)后,发现对php代码格式化的时候会报个错误CodeFormatte

2017-04-26 15:05:33 3458

原创 PHP性状

什么是性状第一次听说这东东,在《modern PHP》一书中看到,感觉在某些时候非常有用。 性状是php5.4.0引入的新概念,即像类又像接口,但是又不是类也不是接口,它是类的部分实现,能把模块化的实现方式注入多个无关的类当中,促进代码的重用。为什么要用性状例如RetailStore和Car这两个PHP类,这两个类在继承的层次结构中没有共同的父类,但是都能使用地理编码技术转换成经纬度,然后在地图中

2017-04-18 18:20:47 1207 1

转载 MySQL索引背后的数据结构及算法原理

本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。

2017-04-13 16:35:52 452

转载 关系数据库三大范式详细剖析

转自:http://blog.csdn.net/sxy_javaeye/article/details/4742949引言  数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的

2017-03-30 11:40:47 266

转载 MySQL存储引擎之Myisam和Innodb总结性梳理

转载自http://www.cnblogs.com/kevingrace/p/5685355.htmlMysql有两种存储引擎:InnoDB与Myisam,下表是两种引擎的简单对比 MyISAMInnoDB构成上的区别:每个MyISAM在磁盘上存储成三个文件。第一个 文件的名字以表的名字开始,扩展名指出文件类型。.

2017-03-29 17:38:49 1803

原创 PHP实现多服务器SESSION共享

PHP实现多服务器SESSION共享为什么要session共享现在稍微大一点的网站基本上都有好几个子域名,比如www.feiniu.com, search.feiniu.com, member.feiniu.com,这些网站如果需要共用用户登录信息,那么就需要做到session共享,当然前提是有相同的主域。PHP的session原理客户端访问php页面,执行session_start,生成sessi

2017-03-29 10:34:47 7213

中国市县区大全

全国市县区大全,带拼音,拼音做过一些过滤处理,比如市县区少数名族之类的后缀都过滤了

2018-02-06

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除