2018年8月7日

事务隔离级别引发的"血案"

摘要: 事务引发的"血案"见的多了也麻木了,这回遇到个事务隔离级别的"案子",坑了我小半天的时间...也怪自己细节不牢.. 敲着代码遇到这么一个怪事情: 其中getOne()的事务的传播属性是required, 因为dubbo是远程调用,所以实际上返回后插入的数据就已经commit了, 一个事务中commi 阅读全文

posted @ 2018-08-07 22:54 蓝萝卜blu 阅读(305) 评论(0) 推荐(0) 编辑

2018年6月13日

由@Convert注解引出的jackson对枚举的反序列化规则

摘要: 对于一些状态字段以前时兴用常量,现在时兴用枚举,虽然阅读体验极佳,但是传值的时候还是会有些麻烦,需要设置一下转换器.比如: 我们定义了如上一个类,其中的一个成员变量是枚举,为了能正常的接收前端的值,一般会给这个枚举定义个转换器来实现String到枚举的转换.但是呢同事发现不定义这个转换器依然可以接收 阅读全文

posted @ 2018-06-13 12:22 蓝萝卜blu 阅读(9180) 评论(0) 推荐(2) 编辑

2018年5月14日

List.contains()与自动拆箱

摘要: 最近项目引入sonarQube这种代码静态检查的东东,以前没有人力和精力review,现在只要扫描一下项目,就发现很多有趣的地方. 有这么一段代码: 这里用到了一个手动拆箱,当然以上的代码只是个示例,但是总体的逻辑是不变的,那么这个手动拆箱,实际上是这段代码的原作者害怕出现Long==Long这种不 阅读全文

posted @ 2018-05-14 14:31 蓝萝卜blu 阅读(2410) 评论(0) 推荐(0) 编辑

2018年2月6日

Utf-8+Bom编码导致的读取数据部分异常问题

摘要: 项目中经常会有这种场景,在配置文件中配置对应关系,项目启动的时候从中读取数据存入map缓存起来,这样使用的时候就可以直接从map找到对应的映射关系. 然后遇到了这么一个诡异的问题,一个简单的映射关系如下: 第一行的语文的映射关系无论如何都取不到,debug的时候可以看到实际上map中是存在1:"语文 阅读全文

posted @ 2018-02-06 13:00 蓝萝卜blu 阅读(442) 评论(0) 推荐(0) 编辑

2018年2月3日

ResouceUtils.getFile()取不到Jar中资源文件源码小结

摘要: Spring提供了一个工具类可以加载classpath下的文件,一般情况下无任何问题,但是当它作为公共的jar包中的工具来加载jar包中的文件时则报出找不到文件的错误. 点开看了一下这个工具类ResouceUtils.getFile()方法的源码: 看了一下代码结构简单逻辑清晰,可能有问题的也就是上 阅读全文

posted @ 2018-02-03 00:06 蓝萝卜blu 阅读(6871) 评论(0) 推荐(1) 编辑

2018年2月1日

Java自动装箱中的缓存原理

摘要: 今天看到一道'经典'面试题: 答案运行一下就能很容易的得出:true,false. 这个题很'经典',之前也看过讲解,大体上说由于jdk的优化,存在一个缓存机制导致,但是一直没有自己去看过源码,今天正好又遇到了,就仔细的看了一下源码. 以Integer为例,JDK中的关键代码: 从方法上的注释可以知 阅读全文

posted @ 2018-02-01 23:49 蓝萝卜blu 阅读(404) 评论(0) 推荐(0) 编辑

2018年1月25日

Javaconfig形式配置Dubbo多注册中心

摘要: 多注册中心,一般用不到,但是某些情况下的确能解决不少问题,可以将某些dubbo服务注册到2套dubbo系统中,实现服务在2套系统间的共用. 网上的配置说明很多,但包括dubbo官方说明文档都是以xml文件配置方式举例. 如想采用javaconfig的配置方式,则只需要对provider中的配置做适当 阅读全文

posted @ 2018-01-25 23:45 蓝萝卜blu 阅读(2924) 评论(0) 推荐(0) 编辑

2018年1月20日

logback多环境配置

摘要: 现在项目基本都是要区分测试开发等等一系列环境的,也因此maven,spring之类的都具有profile这类功能,可以针对不同的环境采用不同的配置.因此日志也可能根据不同的环境需要不同的配置.恰巧手头上碰到了这么一个需求,日志文件也需要区分环境,便搜索了一下相关的资料,发现logback的确也提供这 阅读全文

posted @ 2018-01-20 22:58 蓝萝卜blu 阅读(1607) 评论(0) 推荐(1) 编辑

2017年11月29日

Spring @Scheduled @Async联合实现调度任务(2017.11.28更新)

摘要: 定时任务之前一直用的是quartz之类,但是注意到Spring中其实也提供了一种简单的调度注释@Scheduled,也就想尝一下鲜.. 代码示意如下: 执行了一下,完全ok,日志打印正常,2个任务也都正常定时执行了.那好,添加些业务逻辑进去: 再启动,咦,奇怪了,怎么定时任务没有执行呢?倘使我之前没 阅读全文

posted @ 2017-11-29 21:08 蓝萝卜blu 阅读(8446) 评论(3) 推荐(2) 编辑

2017年9月10日

Nginx的Access日志记录的时机

摘要: 想当然了,所以犯了一个低级的错误... nginx的access访问日志可以记录下访问到nginx的相关信息.包含请求地址,请求路径,返回码,请求的处理时间等信息.. 然后问题来了,这个日志是什么时候记录的呢?是请求到nginx就开始记录,还是请求全都处理完成后才最终记录的呢? 这就是我犯傻的地方. 阅读全文

posted @ 2017-09-10 21:22 蓝萝卜blu 阅读(1226) 评论(0) 推荐(0) 编辑

2017年7月20日

Mysql索引引起的死锁

摘要: 提到索引,首先想到的是效率提高,查询速度提升,不知不觉都会有一种心理趋向,管它三七二十一,先上个索引提高一下效率..但是索引其实也是暗藏杀机的... 今天压测带优化项目,开着Jmeter高并发访问项目,后台连着mysql通过show processlist命令查看查询情况,发现些sql语句需要优化, 阅读全文

posted @ 2017-07-20 22:26 蓝萝卜blu 阅读(2669) 评论(0) 推荐(1) 编辑

2017年3月15日

maven多模块项目找不到Class错误

摘要: 接手了一个maven管理的多模块项目,又是javaconfig,又是spring data jpa,还算是比较新比较正规的模块化结构吧..然后我往其中的一个模块中新添加了一个jpa的entity,然后运行提示找不到新添加的类..倘若这不是jpa项目,倘若这不是javaconfig写的也许就不会出现之 阅读全文

posted @ 2017-03-15 00:22 蓝萝卜blu 阅读(10309) 评论(1) 推荐(0) 编辑

2016年12月9日

浅谈Service层为何要有接口

摘要: 被人随意问了一句,为何每个service层都要写一个接口呢,多麻烦~虽然想说点什么,但是又不知道从何说起,只好从新整理一下思绪. 情景1:在开源框架中有很多这种情况,就是某个功能支持用户自定义扩展.说白了,它提供了一个接口,我们只需要实现这个接口,把我们自己的实现逻辑补上,就可以让框架按照我们的逻辑 阅读全文

posted @ 2016-12-09 00:33 蓝萝卜blu 阅读(8485) 评论(6) 推荐(4) 编辑

2016年12月1日

浏览器请求页面时Etag和cache的区别

摘要: etag:简单的说就是服务器收到客户端的请求后,根据返回的内容计算出来一个etag值,返回给客户端,当客户端下次再请求相同路径的时候会带上之前的etag值,服务器端会根据这次请求应该返回的内容计算出新的etag值,如果内容没有变化的话,etag值应该也不会改变,如果etag值没有改变,那么直接返回3 阅读全文

posted @ 2016-12-01 17:37 蓝萝卜blu 阅读(395) 评论(0) 推荐(0) 编辑

2016年11月16日

spring项目部署到resin4中的无法注入问题

摘要: 碰到个奇葩事啊,一个spring的项目拿到客户现场部署到resin4中,启动后各种报无法注入bean,找不到bean的问题.出现大量下图的错误: 除了系统,其他的jdk版本,resin版本,程序包都是在相同测试环境成功部署测试过的,无任何问题.所以想当然的认为可能拿过去的包有问题,马上本地resin 阅读全文

posted @ 2016-11-16 22:31 蓝萝卜blu 阅读(1225) 评论(0) 推荐(0) 编辑

2016年10月13日

自定义shiro的Realm实现和CredentialsMatcher实现以及Token实现

摘要: Realm是shiro比较核心的接口,简单说它的实现类就是校验用户输入的账号信息的地方.如果想自定义实现一般的配置文件如下: 其中类的关键代码: 这里红色的doGetAuthenticationInfo方法是用来按照用户输入的principal信息从数据库中查询,并将结果作为一个比对信息,比对2者的 阅读全文

posted @ 2016-10-13 23:45 蓝萝卜blu 阅读(12784) 评论(0) 推荐(0) 编辑

2016年7月28日

MalformedByteSequenceException: Invalid byte 1 of 1-byte

摘要: 修改了线上程序的xml配置文件,重启后报如下错误: 百度了下大体的意思是说文件的编码错误,需要重新设置一下文件的编码格式. vim打开配置文件,执行命令: 保存的时候又报错: 执行: 重新保存,重启程序后恢复正常. fenc代表当前文件的编码格式,提示转换失败,也就是说无法直接覆盖当前的编码格式,所 阅读全文

posted @ 2016-07-28 00:07 蓝萝卜blu 阅读(1222) 评论(0) 推荐(1) 编辑

2016年7月27日

JS中误用/g导致的正则test()无法正确重复执行

摘要: 一个简单的利用正则判断输入是否为数字: 发现第二次test的时候返回的值不对了.排除书写错误,取值失败等等各种干扰因素后,发现仅仅是reg正则第二次执行的时候就无法正确执行了.之前并未遇到过这个问题,便搜索了一下相关信息. 原来这个问题实际上是/g导致的,而此时也才发现,实际上这个正则我误用了一个/ 阅读全文

posted @ 2016-07-27 13:54 蓝萝卜blu 阅读(1165) 评论(0) 推荐(1) 编辑

2016年7月6日

maven archetype生成自定义项目原型(模板)

摘要: maven archetype可以将一个项目做成项目原型,之后只需要以此原型来创建项目,那么初始创建的项目便具有原型项目中的一切配置和代码.通俗讲就是一个项目模板. eclipse中那些快速生成maven项目的插件,利用的就是maven的原型功能.所以如果我们自己生成满足我们特定需求的项目原型,也可 阅读全文

posted @ 2016-07-06 21:28 蓝萝卜blu 阅读(4534) 评论(2) 推荐(0) 编辑

2016年6月15日

amCharts图表中的JavaScript中文注释引起的浏览器兼容性问题

摘要: 近期用amCharts做图表.一切都很顺利,然后演示的时候掉链子了,平时开发的时候都是用的火狐和谷歌,加上这种图表框架本来就号称兼容性极好,也没有在ie上测试,演示的机器上恰巧用的是ie11,发现一个普通柱状图表的x轴的目录名显示为undefined.换用谷歌浏览器又一切正常. 显然出现兼容性问题了 阅读全文

posted @ 2016-06-15 16:57 蓝萝卜blu 阅读(864) 评论(0) 推荐(0) 编辑

导航