自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 spring-mvc引入jackson-dataformat-xml依赖后部分接口返回xml

工程是一个spring-mvc,使用jackson作为RestController序列化组件,一切都相安无事。直到有一天添加依赖的时候,间接引入了jackson-dataformat-xml,惊奇的发现部分接口的返回竟然从json变成了xml….带着满脸奔跑的草泥马,不禁提出了3个问题:为什么原来是好的?为什么只有部分接口的json变成了xml?我该怎么解决这个问题?问题1 为...

2018-04-26 11:26:14 7542 3

原创 commons-codec引起的文件名下载指定错误

对于一个Java Web应用来说,如果需要指定客户端下载的文件名,那就需要设置Content-Disposition,指定前由于Web容器的限制,需要对指定的fileName进行URL编码编码。举个栗子,如果文件名叫’测试.txt’,那么需要指定Content-Disposition: attachment; filename=”%e6%b5%8b%e8%af%95.txt”; filenam...

2018-04-02 18:17:51 1968

原创 MySQL常见问题汇总

以下描述建立在以下表结构中:create table test ( id bigint primary key auto_increment, name varchar(32), cts datetime);Dupicate Key假定业务场景,用户登录时已知id=1,name是和请求相关的变量,要求写入test表中,如果test表中之前不存在数据则写入,如果已存在数据则将原数据返回

2017-09-02 22:49:38 380

原创 依赖Jetty实现流转发功能的实践

最近在写文件的下载服务,主要功能是将请求URL调用业务接口进行解析,解析到真实的下载地址,然后将下载流透传出去。这一部分之前使用nginx-lua实现,由于维护过于困难(优雅上下线、截流、熔断能力缺乏, 证书相关运维支持缺失),因此改用Java实现。本文也主要论述如何依赖Jetty实现流转发功能。由于对Jetty的依赖非常深,建议使用EmbeddedJettyServer以引入和统一Jetty依赖。

2017-09-02 21:43:00 1364

转载 Spring中bean循环引用的处理

最近在项目中遇到Bean循环引用的问题 问题是这样的:Caused by: org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'storageQueryService': Bean with name 'storageQueryService' has

2016-10-09 19:03:04 7976

原创 文件名搜索分词设计

期望目标:能够实现String.contains操作。 举例:”sd.mp4” 不管是搜”s”、”m”、”.”、”d.m”、”mp”都应该可以搜出该关键词。核心难度在于倒排索引的关键词覆盖。参考内部IM的搜索机制如下: 由于IM搜索主要用于群名、人名,垃圾数据少,并且多为中文,因此可以对中文进行拼音提取,对英文进行多段冗余。 这样做有两个好处,第一,开发量低;第二,可以省去搜索补全的部分功

2016-07-18 16:38:17 420

原创 读书笔记-ElasticSearch权威指南

ES是如何保证实时性的?ES的每个示例都拥有一个luence,在luence中有一个段的概念,索引由一或多个段组成,每个段都是索引中可被单独检索的一部分。 当ES的flush事件触发时,新的数据会被ES作为一个新的段加入索引,于是新的数据就可以被检索到了。默认的flush间隔时1s。 那么问题来了,每次刷新都新增一个段,会不会造成查询的段过多,影响查找效率呢? 一般是不会的,ES会静默的对段进

2016-05-27 15:48:31 1004

原创 全半角字符转换

用户输入的内容经常既有全角字符,又有半角字符 在pinyin4j的分词中,会将全角字符转换为半角字符,造成分词前后字符不一致 为了解决这个问题,查找了Unicode表,写了全半角转换的工具如下:/** * <PRE> * 提供对字符串的全角->半角,半角->全角转换 * </PRE> */public class BCConvertUtil { /** * ASCII表

2016-05-26 17:30:35 571

原创 文件对象式解析限制内存方法

解析文件的方式有两种,一种是流式解析,一种是对象式解析(开源的文件解析库采用指针式解析的不多,暂不讨论)。对于复杂文件,更多的是用对象式解析,那么当这个文件足够大的时候,就会发生OOM。 对于用户操作的文件,有时并不能直接限制文件大小(比如在非主要业务中的操作),有时需要对内容做截断处理(比如只允许1G,只忽略超出的内容)。在这种业务场景下,就需要对解析进行限制内存。那如何限制呢? 我大概有两种

2016-05-12 18:16:02 414

原创 Java运行时故障排查

最近单独负责一个应用上线,由于经验不足,踩了很多坑,记录一下,方便以后查看。刚开始我的try,catch是这样写的:try { mediaType = detector.detect(inputStream, metadata); parser.parse(inputStream, handler, metadata, parseContext);} catch (TikaExce

2016-05-10 16:26:36 977

原创 NodeJs密码模块整理

密码模块我用的crypto-js,因为目测文档比较丰富。因为业务需要,需要将Hmac-sha1摘要出的二进制串Base64编码后发送。 但是由于crypto-js在内部加密使用的是私有的二进制数组WordArray,在给其他模块Base64编码时,总是没法拿到原生的二进制串,于是去认真学习了crypto-js。 结果发现没必要拿到原生的二进制串,crypto直接就可以以Base64编码输出。感觉

2016-03-24 09:53:50 2624

原创 Intellij15Mac下常用快捷键整理

公司统一配发了Mac,开发IDE用的是Intellij,在习惯开发中,整理了一下个人常用的快捷键。

2016-03-21 14:59:50 276

原创 ECONNRESET分析与解决

升级jetty插件,导致NodeJS集成测试脚本出现ECONNRESET,问题排查与分析。

2016-03-21 14:24:17 29535

原创 初学Rails

初学Rails环境搭建 安装ruby、rails、gem、DevKit、rake,Windows下强烈推荐RubyInstaller环境运行 进入应用开发目录,执行命令rails new blog,rails会自动创建一个博客APP创建的第一个APP有很大的概率会出现如下问题:Fetching gem metadata from RubyGems.org.......Fetching

2016-01-23 14:41:16 285

原创 bootstrap-datetimepicker控件位置异常

今天在写毕设的时候,用到了bootstrap-datetimepicker作为日期控件。在git上clone下最新的代码,运行demo,发现控件区域整体下移1000px左右。作为一个准备拿来就用的后台程序猿,此刻我的内心是崩溃的…百度了很久,没有找到对应的解决方案,于是自己动手去源码修改。最终解决方案:打开源码,的bootstrap-datetimepicker.js文件line 527行,打开这一

2016-01-15 14:42:53 3896

原创 几种IO模型的比较

几种IO模型比较要说几种IO模型,需要先讨论一下事件分离器的两种模式 1. Reactor模式 由回调函数完成实际的IO读写,操作系统仅通知,不读取 2. Proactor模式 由操作系统代为进行IO读写,将读取后的结果托付给回调函数AIO 非阻塞,采用Proactor模型,Windows的IOCP、Linux的epollNIO 非阻塞,采用Reactor模式BIO

2016-01-09 19:43:27 1197

原创 Spring整合Quartz遇到内存泄露问题

团队的项目需要做定时任务,于是选择了Quartz在整合过程中,遇到了Quartz配置不正确导致内存泄露的问题。 当启动服务器时,程序是正常的,重启时,Web容器报错,无法unregister相应的Bean。 起初并没有在意,之后发现服务器内存占用过高,查看内存后,发现有多个Java进程。 于是猜测是线程池或Quartz没有正常关闭。 加入专门关闭线程池的Listener后,仍然无法解决问题

2016-01-09 17:24:32 4677

原创 express-session遇到session失效的问题

在用express-session的时候,遇到了session存储Set失效的问题经过分析,此失效有两个原因启用了secure选项 Please note that secure: true is a recommended option. However, it requires an https-enabled website, i.e., HTTPS is necessary for s

2016-01-09 17:23:00 6171

原创 Spring整合LogBack

在Sping整合LogBack过程中,发现logback不能操作Spring本身的日志。对整个过程做了分析,发现Spring使用apache的common-log作为日志的入口,而不是使用SLF4j。common-log的LogFactory 内部装载日志系统流程: 1. 首先,寻找org.apache.commons.logging.LogFactory 属性配置 2. 否则,利用JD

2015-12-16 18:46:13 423

空空如也

空空如也

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

TA关注的人

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