- 博客(73)
- 收藏
- 关注
原创 一点点小感慨
看到一个面试者的简历, 点了看了下他的Github和CSDN博客, 想起了我以前也写过一些博客. 点过来看看以前写的博客还是有人看的. 也有反馈一些问题. 感觉自己以前真是热血, 现在真的是懒得写这些了....
2018-07-23 20:13:30 408
原创 为什么下一个5年java后台开发你该选择Spring Boot?
Spring是一个无所不包的一站式java开发平台. 但由于10多年的发展, Spring的体系太过庞大, 程序员无法掌握其历史, 同时复杂的依赖, 大量的配置, 复杂的部署给开发带来了很大的阻碍.Spring Boot基于约定大于配置的理念, 简化了依赖管理, 简化了配置, 简化了部署. 大大降低了使用Spring开发的难度, 大大加快了开发速度. 我认为必将是Java后台开发下一个5年的杀手级框架.
2017-05-29 21:19:55 15689 3
原创 kotlin与Spring, 默认类,方法,property为final带来的问题--依赖注入失效,NullPointerException异常
使用kotlin写Spring时,kotlin默认类,方法,property为final带来的问题 -- 依赖注入失效, NullPointerException的原理及解决方法
2017-04-18 14:26:04 4521 2
原创 Kotlin enum类与companion设计的不协调--NPE导致ClassNotFoundException, Could not initialize class.
kotlin使用companion代替static, 而enum类是在类初始化时就初始化实例, 如果在enum实例中引入到了companion object中的字段, ide和编译器都不会提示错误, 但是运行那么就会导致enum类初始化失败. 因为初始化实例时, companion object还没有初始化. 引用其字段, 导致NPE, 类初始化失败, 导致ClassNotFoundException
2017-03-13 13:43:53 3509 1
原创 kafka多线程消费及处理和手动提交处理方案设计
kafka的消费者有很多种不同的用法及模型. 本文着重探讨0.9版本及之后的kafka新consumer API的手动提交和多线程的使用
2017-01-23 11:32:54 27182 11
翻译 Kafka 0.9 新版本consumer客户端使用介绍
kafka最初的客户端使用scala写的, 但是有很多限制. 在0.8.1版本中, 用Java重写了producer客户端, 0.9版本中用java重写了consumer客户端, 新的客户端提供了更加易用, 清晰一致的api. 本文翻译了kafka官方的新consumer使用介绍. 主要介绍了新版本的客户端与旧客户端的区别, 新版本的使用, 详细介绍了一些重要配置, 消费语义等方面.
2017-01-08 14:55:03 10670
翻译 kafka权威指南 第一章翻译 Meet Kafka
Kafka The Definitive Guide, Early Release第一章 Meet Kafka翻译. 主要介绍队列系统是如何逐渐引入业务中, 以及LinkedIn的业务需求的发展带来了哪些技术上的问题, 以及这个背景下kafka的诞生.
2017-01-07 12:29:44 6179
原创 无法删除节点 Zookeeper: Packet len5391978 is out of range
问题今天在对Zookeeper进行性能测试, 在/zktest节点下建了16W个节点,每个节点名为30个字符 然后进行删除时出现Packet len5391978 is out of range的错误, 导致不能获取节点列表, 也不能删除节点.
2016-10-15 13:14:37 6038
原创 Java中的相对路径解惑
让人迷惑的相对路径Java 中有一个很容易让人误解的问题, 就是相对路径问题. 对这个问题进行解析, 给出使用类路径进行加载的方法, 并且简单分析Spring中的做法.
2016-10-04 12:31:30 1982
原创 使用springfox整合SpringMVC和Swagger
Swagger 是一系列对 RESTful 接口进行规范描述和页面展示的工具. 通过 springfox-swagger 将 Swagger 与 Spring-MVC 整合, 可从代码中的注解获取信息, 并生成相应的文档. 效果如下所示. 目前 Swagger 的 api 版本规范已经更新到 2.0 版本, 中文网络上基本上都是 1.0 的 api 版本规范的教程. 捣鼓了一天终于搞定了.
2016-09-29 16:57:36 16963 1
原创 Spring中的所有路径匹配问题总结
Spring 路径问的最多的问题就是如何拦截所有以. do 结尾的请求. 大家都是在猜, 网上给出的答案五花八门然而大部分都是错的. 正确答案是 /**/*.do. 其实Spring中无论是handler路径映射, 还是interceptor路径匹配, 还是sping.xml中加载配置文件时使用的"classpath*", 都使用的是AntPathMatcher规则, 这里做详细的介绍
2016-09-27 12:02:58 7360 1
原创 Java7 NIO2 Path类
Java 从 1.0 开始就有了 Java IO 模型, 在 JDK 1.4 中添加了 NIO, 主要添加了非阻塞 IO 支持, Java 7 中, 增加了异步通道, 对本地文件系统添加了更多元数据支持 (File Attributes), 文件树遍历 (FileTreeWalker), 文件变化监测的 Watch Service 等功能
2016-09-25 14:54:15 1593
Spring重复扫描导致事务失败的解决方案及深入分析
问题及日志使用Spring和mybatis,然后配置事务,出现SqlSession was not registered for synchronization because synchronization is not active,事务没有启用成功。[org.mybatis.spring.SqlSessionUtils] - Creating a new SqlSession [...
2016-04-17 12:19:00 2536 1
原创 IntelliJ IDEA使用Maven创建Spring和Mybatis工程出现...BindingException: Invalid bound statement (not found)
IntelliJ IDEA使用Maven创建Spring和Mybatis工程,出现org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)异常的解决方法
2016-04-16 20:36:31 2569 2
IntelliJ IDEA使用Maven创建Spring和Mybatis工程出现...BindingException: Invalid bound statement (not found)...
使用intelliJ idea创建Mybatis工程后,扫描xml所在的包也配置了,如下,<!--spring与MyBatis结合,不需要mybatis配置映射文件--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <pr...
2016-04-16 20:36:00 159
ThreadLocal源码解析
今天在看Spring 3.x企业应用开发实战,第九章 Spring的事务管理,9.2.2节ThreadLocal的接口方法时,书上有提到Threadlocal的简单实现,我就去看了下JDK1.8的Threadlocal的源码。发现实现方式与书中讲的并不相同,同时在网上搜索了一下,发现有比较多的人理解错了。先看一下容易误导的解释:在ThreadLocal类中有一个Map对象,这个Map以每个T...
2016-04-11 21:51:00 116
FireFox和VimFox插件--个人感觉最好用的火狐快捷键插件
个人比较喜欢键盘操作,特别是浏览网页时,一般都说编程的人该用chrome,个人感觉并不是很好用.切换到linux下后,chrome有个比较严重的问题,就是在输入网址时,非常的卡顿,于是开始使用firefox浏览器.有了解到这些浏览器的插件都比较多,于是搜索了一下,Vimium比较难用,快捷键很少,而Vimperator学习成本又比较高,所以使用了VimFox后,就决定用它了.下...
2015-10-16 09:24:00 566
HTTP摘要认证方式分析与验证
使用tomcat自己创建了一个网页.http://218.197.239.47:8080/First/MyHtml.html进行了权限设置,使用摘要验证,用户名(root)和密码(admin),输入提示"Test DIGEST"成功验证后,我们查看响应头和请求头信息如下所示:其中最重要的信息为请求头中的Authentication首部:...
2015-10-04 22:40:00 355
HTTP内建Authentication机制分析
内建的用户登陆机制Authentication:访问http://linux.linuxidc.com/网页弹出:此时的HTTP请求和响应如下:返回的是401 Unauthorized状态码,同时弹出需要验证的输入框如果不输入任何信息,验证失败。如果输入信息,用户名,密码都是www.linu...
2015-10-02 23:21:00 191
我的linux系统配置
更新了win10,使用了一段时间,win10经常蓝屏,发热也比较严重,如果使用了两天以上未关机就会比较卡了。所以决定使用linux,使用的是Deepin 2014.3版本。Deepin系统自带了搜狗输入法,wps,谷歌浏览器,windows版的QQ。可能是直接把独立显卡关了,就没有Ubuntu很头疼的发热问题。基本上可以直接使用了。做了一些配置,...
2015-10-01 17:04:00 107
原创 Top K问题用Python求解
用Python写的Top K问题,一种是对N个数据直接排序,然后取出其最大的K个数。复杂度为N*logN。一种是通过保留K个数的槽,然后不断去N个数中取数,如果取出的数比K个槽中的数的最小值要大,那么就替换这个最小值。所以时间复杂度为N*logK.以下为时间。复杂度N*logkN*logN1W0.0049101173134
2015-09-21 18:58:29 2566
Top K问题用Python求解
用Python写的Top K问题,一种是对N个数据直接排序,然后取出其最大的K个数。复杂度为N*logN。一种是通过保留K个数的槽,然后不断去N个数中取数,如果取出的数比K个槽中的数的最小值要大,那么就替换这个最小值。所以时间复杂度为N*logK.以下为时间。复杂度N*logkN*logN1W0.00491011731340.0...
2015-09-21 18:58:00 375
对Throwable的处理
Java以严谨著称,对于checked异常, 1. 在出现异常的地方使用catch捕捉并忽略它 2. 直接抛出异常 对于第一种方法,有的时候很危险,异常有的时候必须被上层知道,如果有部分执行不正确,程序是需要停止的。第二种方法,会很麻烦,这样一层层调用,每层都要写异常相关的代码,会多很多的代码。 可以定义一个这样的方法对异常和错误进行处理: public static void...
2015-09-14 23:11:00 769
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人