自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

civil的专栏

Read The Fucking Source Code

  • 博客(81)
  • 资源 (3)
  • 收藏
  • 关注

原创 spring循环引用

当spring的bean存在循环引用时,有的情况下会报错,而有的情况下不会。影响是否会报错的因素是:1.属性是通过构造方法传递值还是通过setter传递值。2.属性是否是单例的。下面解释了四种情况、是否会报错、报错或不报错的原因。前置知识不论是singleton还是prototype,在创建的过程中都会有一个xxxCurrentlyInCreation的Set对象,这个Set中存放的key表示正在创建的对象,但是还没有创建完成。在对象new之前先检查这个Set中没有要创建的key,然后把要创建的对象的k

2021-05-06 18:09:09 356

原创 New Git branch model

Vincent Driessen’s branch model我们在使用分支时,一般是使用 Vincent Driessen’s branch model。但是当多个feature分支同时开发,并且包含开发环境、测试环境、预生产环境等多个环境时,会有一些问题。比如:张三开发feature/a分支,李四开发feature/b分支,他们开发都已经进行到测试阶段了,他们的代码已经被合并到develop...

2020-05-05 13:16:25 407

原创 Linux、Java、Netty的零拷贝

零拷贝的概念在不同场景下,零拷贝的概念是不同的。在操作系统层面,零拷贝是指在用户态和内核态的拷贝次数为0。在Netty中,指的只是在用户层面(java层面)的拷贝次数为0。零拷贝如何实现操作系统层面在操作系统的层面实现零拷贝依赖于操作系统的命令,主要有两种方案:1.sendfile命令。2.mmap命令。这里注意:在操作系统层面的零拷贝是有一定场景约束的,必须限制的把文件发送到soc...

2020-04-06 18:18:51 520

原创 spring源码解析-web系列(八):使用@ResponseBody时中文乱码的解决

乱码的现象先上代码:代码1:@Controllerpublic class TestController { @RequestMapping(value = "/a") @ResponseBody public Object a() throws Exception { MyResponse myResponse = new MyResponse(...

2019-08-22 16:51:59 1003

原创 spring源码解析-web系列(七):九大组件之HandlerExceptionResolver

HandlerExceptionResolverHandlerExceptionResolver用来解析请求处理过程中产生的异常。HandlerExceptionResolver的继承关系如下:图1:1.AbstractHandlerExceptionResolver:是所有直接解析异常类的父类,定义了通用的解析流程。2.AbstractHandlerMethodExceptionRe...

2019-08-09 11:55:46 1392

原创 spring源码解析-web系列(六):九大组件之ViewResolver

前言ViewResolver的作用是通过ViewName获取到View,从而可以渲染结果。ViewResolver的接口定义如下:代码1 (org.springframework.web.servlet.ViewResolver):public interface ViewResolver { View resolveViewName(String var1, Locale var2...

2019-08-06 15:33:27 1526

原创 spring源码解析-web系列(五):解析请求参数

参数的分类我们在使用spring-web时,配置参数的形式有很多,比如:@PathVariable、@RequestParam、@SessionAttribute、@ModelAttribute、Model。本文把他们分为两类,根据在源码里被处理的位置划分:1.在InvocableHandlerMethod中使用HandlerMethodArgumentResolver处理的的,比如@Path...

2019-08-06 15:17:21 1571

原创 spring源码解析-web系列(四):九大组件之HandlerAdapter

HandlerAdapterHandlerMapping通过request找到Handler,HandlerAdapter通过Handler来干活。HandlerAdapter的继承关系如下:图1:HandlerAdapter的继承结构很简单,且右边4个类都很简单,只需关注AbstractHandlerMethodAdapter和RequestMappingHandlerAdapter即可...

2019-08-04 13:30:28 1777

原创 spring源码解析-web系列(三):九大组件之HandlerMapping

HandlerMappingHandlerMapping的作用就是通过HttpServletRequest查找Handler,Handler后面可以用来处理逻辑的单元,比如我们配置的一个@RequestMapping注解的方法,一个***org.springframework.web.servlet.mvc.Controller***类(该接口已经被废弃了,推荐使用注解)。HandlerMap...

2019-07-30 16:36:26 2421

原创 spring源码解析-web系列(二):处理请求的过程

在j2ee规范里,处理请求的就是servlet,我们使用spring时,配置的就是DispatcherServlet来处理。当请求来到以后,被DispatcherServlet处理,在DispatcherServle中,找到我们配置的controller、解析参数、处理返回值等。

2019-07-29 14:38:02 2287

原创 spring源码解析-web系列(一):启动

我们在使用spring-mvc时,一般会: 1、在web.xml中配置一个***contextConfigLocation***参数,值为spring的xml配置文件(不包含controller)路径,然后再配置一个 ***ContextLoaderListener*** 类型的listener。 2、配置一个DispatcherServlet类型的servlet,给该servlet配置contextConfigLocation类型的参数,值为spring的xml配置文件(只包含controller

2019-07-25 14:55:53 2325

原创 kafka offset & flink & spark structured streaming

前言Kafka有offset的概念,offset记录每个groupId对于每个topic的每个partition里已经提交的读取位置。当comsumer程序失败重启时,可以从这个位置重新读取数据。可以通过如下方法查看一个groupId的offset:root@h2:~# /opt/kafka/bin/kafka-consumer-groups.sh --bootstrap-server h2...

2019-05-21 16:19:22 3542 2

原创 Application should be expired, max number of completed apps kept in memory met: maxCompletedAppsInMe

前言今天我们的yarn集群出现了一个奇怪的问题,在资源足够的情况下,提交的job一直处在ACCEPTED状态,不能运行。我们的集群是CDH-5.13.3-1.cdh5.13.3.p0.2,提交到root.users下的任何一个queue(root.users.hive和root.users.root)的job都不能运行,提交到root.default的job可以运行。但是我们不使用root.d...

2019-05-20 21:48:18 3987 3

原创 hadoop报错Container is running beyond memory limits

写在前面在我们运行hive时,有时会报内存使用超过了限制的异常,内容如下:Container [pid=18578,containerID=container_e29_1554258701746_2799_01_000007] is running beyond physical memory limits. Current usage: 1.0 GB of 1 GB physical me...

2019-04-11 15:32:56 2916

原创 scala中的implicit

前言scala在2.10版本中引入了implicit关键字,包括两个方面的内容:隐式参数和隐式转换。隐式参数:把一些变量声明为隐式参数,把一些方法的参数声明为可以支持隐式参数的,当调用方法时,如果没有传递该参数,那么可以去使用隐式参数。隐式转换:首先提供一些类型转换的能力(通过隐式类和隐式方法),然后在调用某些方法时,当某些对象的类型不匹配,可以使用对应的隐式转换去转换对象的类型。impl...

2019-03-27 20:18:35 7407

原创 线程池ThreadPoolExecutor源码解析

转载请标明出处: https://blog.csdn.net/bingospunky/article/details/80234457 本文出自马彬彬的博客创建ThreadPoolExecutorExecutorService fixedThreadPool = new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISE...

2018-05-08 09:05:58 2333

原创 SpringMVC的Interceptor和Cors冲突

转载请标明出处: https://blog.csdn.net/bingospunky/article/details/80136164 本文出自马彬彬的博客现象项目中前后端分离部署,所以需要解决跨域的问题。 我们使用cookie存放用户登录的信息,在spring拦截器进行权限控制,当权限不符合时,直接返回给用户固定的json结果。 当用户登录以后,正常使用;当用户...

2018-04-28 15:58:54 8922 5

原创 ElasticSearch+Logstash+Kibana+Filebeats日志系统

转载请标明出处: https://blog.csdn.net/bingospunky/article/details/79803150 本文出自马彬彬的博客下载地址elastic系列软件下载地址安装ElasticSearch下载elasticsearch-5.5.1.zip,解压就可以使用。$ELASTICSEARCH_HOME/bin/ela...

2018-04-03 14:42:11 7139

原创 mybatis源码解析(七)-当mybatis一级缓存遇上spring

mybatis源码解析(一)-开篇 mybatis源码解析(二)-加载过程 mybatis源码解析(三)-SqlSession.selectOne类似方法调用过程 mybatis源码解析(四)-Mapper方法调用过程 mybatis源码解析(五)-mybatis如何实现的事务控制 mybatis源码解析(六)-配合spring-tx实现事务的原理 mybatis源码解析(七)-当my...

2018-03-27 14:57:09 2986 1

原创 spring-boot-auto-configure:spring.cache.type如何生效

转载请标明出处: https://blog.csdn.net/bingospunky/article/details/79700773 本文出自马彬彬的博客spring.cache.type: redis如何生效的?在使用spring cache时,spring已经默认支持了几种缓存实现方式,我们可以通过在spring-boot配置文件中添加spring.cach...

2018-03-26 17:09:51 8343

原创 spring-bean循环引用

转载请标明出处: http://blog.csdn.net/bingospunky/article/details/79555075 本文出自马彬彬的博客当循环引用时,spring如何应对情景:A、B两个对象,相互引用,型如: <bean id="a" class="net.qingtian.aopdemo.xml.A" scope="singl...

2018-03-14 15:13:42 2860

原创 mybatis源码解析(六)-配合spring-tx实现事务的原理

mybatis源码解析(一)-开篇 mybatis源码解析(二)-加载过程 mybatis源码解析(三)-SqlSession.selectOne类似方法调用过程 mybatis源码解析(四)-Mapper方法调用过程 mybatis源码解析(五)-mybatis如何实现的事务控制 mybatis源码解析(六)-配合spring-tx实现事务的原理 mybatis源码解析(七)-当my...

2018-03-13 15:51:23 4699

原创 mybatis源码解析(五)-mybatis如何实现的事务控制

mybatis源码解析(一)-开篇 mybatis源码解析(二)-加载过程 mybatis源码解析(三)-SqlSession.selectOne类似方法调用过程 mybatis源码解析(四)-Mapper方法调用过程 mybatis源码解析(五)-mybatis如何实现的事务控制 mybatis源码解析(六)-配合spring-tx实现事务的原理 mybatis源码解析(七)-当my...

2018-02-07 18:19:18 5898

原创 mybatis源码解析(四)-Mapper方法调用过程

mybatis源码解析(一)-开篇 mybatis源码解析(二)-加载过程 mybatis源码解析(三)-SqlSession.selectOne类似方法调用过程 mybatis源码解析(四)-Mapper方法调用过程 mybatis源码解析(五)-mybatis如何实现的事务控制 mybatis源码解析(六)-配合spring-tx实现事务的原理 mybatis源码解析(七)-当my...

2018-01-31 18:50:38 6121

原创 mybatis源码解析(三)-SqlSession.selectOne类似方法调用过程

mybatis源码解析(一)-开篇 mybatis源码解析(二)-加载过程 mybatis源码解析(三)-SqlSession.selectOne类似方法调用过程 mybatis源码解析(四)-Mapper方法调用过程 mybatis源码解析(五)-mybatis如何实现的事务控制 mybatis源码解析(六)-配合spring-tx实现事务的原理 mybatis源码解析(七)-当my...

2018-01-30 10:22:03 22232

原创 mybatis源码解析(二)-加载过程

mybatis源码解析(一)-开篇 mybatis源码解析(二)-加载过程 mybatis源码解析(三)-SqlSession.selectOne类似方法调用过程 mybatis源码解析(四)-Mapper方法调用过程 mybatis源码解析(五)-mybatis如何实现的事务控制 mybatis源码解析(六)-配合spring-tx实现事务的原理 mybatis源码解析(七)-当my...

2018-01-29 17:19:06 5429

原创 mybatis源码解析(一)-开篇

mybatis源码解析(一)-开篇 mybatis源码解析(二)-加载过程 mybatis源码解析(三)-SqlSession.selectOne类似方法调用过程 mybatis源码解析(四)-Mapper方法调用过程 mybatis源码解析(五)-mybatis如何实现的事务控制 mybatis源码解析(六)-配合spring-tx实现事务的原理 mybatis源码解析(七)-当my...

2018-01-29 16:06:13 5436

原创 《SSO系列三》CAS集群部署时session异常

这篇blog描述了,CAS是如何使用session,以及集群部署服务时可能会遇到的session问题。

2017-11-30 17:10:19 5784

原创 《SSO系列二》自己动手写一个SSO

这篇文章介绍一个我学习过程中写的一个Demo,可以让初学者对SSO有一个整体的认识。线上演示我已经把我这个Demo部署在我的服务器上,你可以按照如下步骤体验。

2017-11-30 17:02:47 7109 1

原创 《SSO系列一》初识SSO

单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

2017-11-30 16:58:25 2516

转载 使用commitizen的正确姿势

我们在每次提交代码时,都需要编写Commit Message,否则是不允许提交的。 git commit -m "first commit with userInfo service"编写Commit Message需要遵循一定的范式,内容应该清晰明了,指明本次提交的目的,便于日后追踪问题。commitizen就是这么样一款工具,他用来规范化我们的commit消息。

2017-07-18 15:11:59 10126 1

原创 aws 交换分区 虚拟内存

在aws了是用交换分区

2017-06-05 15:46:12 1111

原创 shell通过getopts获取参数

getopts

2017-05-10 16:16:32 3356

原创 mac安装mysql5.7

本文记录一下我在mac环境下安装mysql-5.7.16遇到的坑。

2017-05-10 16:14:10 1604

原创 Linux任务前后台切换

Shell支持作用控制,有以下命令实现前后台切换1.command& 让进程在后台运行2.jobs 查看后台运行的进程3.fg %n 让后台运行的进程n到前台来4.bg %n 让进程n到后台去5.kill %n 杀死jobPS:”n”为jobs命令查看到的job编号,不是进程编号. fg、bg、jobs、&、ctrl + z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但

2017-05-10 16:10:56 3121

转载 easyui datagrid列中使用tooltip

要实现这样一个效果:数据加载到DATAGRID中,鼠标移至某一列时,会弹出tooltip提示框。

2017-05-02 19:37:37 8830 1

转载 分布式系统原理

一、分布式系统基础重要要点:对外提供无状态节点,内部实现具体有状态或者无状态节点逻辑,节点即可以是提供服务,也可以是存储数据。 拜占庭问题,在分布式系统中的使用,目的是保证服务可用,而不是找出错误的节点,如果。 异常常见情况,机器宕机、网络异常、消息丢失、消息乱序、数据错误、不可靠的TCP。可能是收到消息后宕机、也可能是处理完成以后机器宕机、处理完成任务后发送确认消息是网络异常。也有可能是

2017-04-26 16:07:50 9942 1

原创 js正则表达式

js正则表达式学习笔记

2017-03-22 20:33:58 2264

原创 Mac tomcat 日志中文乱码

使用System.out.println()输出日志中文乱码。修改 tomcat 的启动脚本 tomcat_dir/bin/catclina.sh把if [ -z "$LOGGING_MANAGER" ]; then LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"fi修改为i

2017-02-16 16:05:14 17191

原创 无法连接aws里的MySql

使用SSH tunnel远程连接aws里的MySql

2017-01-14 14:10:03 11214

hudson-3.3.3.war

Building/testing software projects continuously, just like CruiseControl or DamageControl. In a nutshell, Hudson provides an easy-to-use so-called continuous integration system, making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build. The automated, continuous build increases productivity.

2017-10-12

ViewPagerBlank

两层ViewPager切换Fragment,内层的Fragment在某些情况下会不显示

2016-05-09

stardict-langdao-ec-gb-2.4.2.tar.bz2

stardict-langdao-ec-gb-2.4.2.tar.bz2

2015-06-12

空空如也

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

TA关注的人

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