- 博客(81)
- 资源 (3)
- 收藏
- 关注
原创 spring循环引用
当spring的bean存在循环引用时,有的情况下会报错,而有的情况下不会。影响是否会报错的因素是:1.属性是通过构造方法传递值还是通过setter传递值。2.属性是否是单例的。下面解释了四种情况、是否会报错、报错或不报错的原因。前置知识不论是singleton还是prototype,在创建的过程中都会有一个xxxCurrentlyInCreation的Set对象,这个Set中存放的key表示正在创建的对象,但是还没有创建完成。在对象new之前先检查这个Set中没有要创建的key,然后把要创建的对象的k
2021-05-06 18:09:09 436
原创 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 455
原创 Linux、Java、Netty的零拷贝
零拷贝的概念在不同场景下,零拷贝的概念是不同的。在操作系统层面,零拷贝是指在用户态和内核态的拷贝次数为0。在Netty中,指的只是在用户层面(java层面)的拷贝次数为0。零拷贝如何实现操作系统层面在操作系统的层面实现零拷贝依赖于操作系统的命令,主要有两种方案:1.sendfile命令。2.mmap命令。这里注意:在操作系统层面的零拷贝是有一定场景约束的,必须限制的把文件发送到soc...
2020-04-06 18:18:51 581
原创 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 1053
原创 spring源码解析-web系列(七):九大组件之HandlerExceptionResolver
HandlerExceptionResolverHandlerExceptionResolver用来解析请求处理过程中产生的异常。HandlerExceptionResolver的继承关系如下:图1:1.AbstractHandlerExceptionResolver:是所有直接解析异常类的父类,定义了通用的解析流程。2.AbstractHandlerMethodExceptionRe...
2019-08-09 11:55:46 1449
原创 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 1603
原创 spring源码解析-web系列(五):解析请求参数
参数的分类我们在使用spring-web时,配置参数的形式有很多,比如:@PathVariable、@RequestParam、@SessionAttribute、@ModelAttribute、Model。本文把他们分为两类,根据在源码里被处理的位置划分:1.在InvocableHandlerMethod中使用HandlerMethodArgumentResolver处理的的,比如@Path...
2019-08-06 15:17:21 1650
原创 spring源码解析-web系列(四):九大组件之HandlerAdapter
HandlerAdapterHandlerMapping通过request找到Handler,HandlerAdapter通过Handler来干活。HandlerAdapter的继承关系如下:图1:HandlerAdapter的继承结构很简单,且右边4个类都很简单,只需关注AbstractHandlerMethodAdapter和RequestMappingHandlerAdapter即可...
2019-08-04 13:30:28 1829
原创 spring源码解析-web系列(三):九大组件之HandlerMapping
HandlerMappingHandlerMapping的作用就是通过HttpServletRequest查找Handler,Handler后面可以用来处理逻辑的单元,比如我们配置的一个@RequestMapping注解的方法,一个***org.springframework.web.servlet.mvc.Controller***类(该接口已经被废弃了,推荐使用注解)。HandlerMap...
2019-07-30 16:36:26 2496
原创 spring源码解析-web系列(二):处理请求的过程
在j2ee规范里,处理请求的就是servlet,我们使用spring时,配置的就是DispatcherServlet来处理。当请求来到以后,被DispatcherServlet处理,在DispatcherServle中,找到我们配置的controller、解析参数、处理返回值等。
2019-07-29 14:38:02 2351
原创 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 2370
原创 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 3604 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 4197 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 3090
原创 scala中的implicit
前言scala在2.10版本中引入了implicit关键字,包括两个方面的内容:隐式参数和隐式转换。隐式参数:把一些变量声明为隐式参数,把一些方法的参数声明为可以支持隐式参数的,当调用方法时,如果没有传递该参数,那么可以去使用隐式参数。隐式转换:首先提供一些类型转换的能力(通过隐式类和隐式方法),然后在调用某些方法时,当某些对象的类型不匹配,可以使用对应的隐式转换去转换对象的类型。impl...
2019-03-27 20:18:35 8824
原创 线程池ThreadPoolExecutor源码解析
转载请标明出处: https://blog.csdn.net/bingospunky/article/details/80234457 本文出自马彬彬的博客创建ThreadPoolExecutorExecutorService fixedThreadPool = new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISE...
2018-05-08 09:05:58 2370
原创 SpringMVC的Interceptor和Cors冲突
转载请标明出处: https://blog.csdn.net/bingospunky/article/details/80136164 本文出自马彬彬的博客现象项目中前后端分离部署,所以需要解决跨域的问题。 我们使用cookie存放用户登录的信息,在spring拦截器进行权限控制,当权限不符合时,直接返回给用户固定的json结果。 当用户登录以后,正常使用;当用户...
2018-04-28 15:58:54 9020 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 7179
原创 mybatis源码解析(七)-当mybatis一级缓存遇上spring
mybatis源码解析(一)-开篇 mybatis源码解析(二)-加载过程 mybatis源码解析(三)-SqlSession.selectOne类似方法调用过程 mybatis源码解析(四)-Mapper方法调用过程 mybatis源码解析(五)-mybatis如何实现的事务控制 mybatis源码解析(六)-配合spring-tx实现事务的原理 mybatis源码解析(七)-当my...
2018-03-27 14:57:09 3037 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 8455
原创 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 2895
原创 mybatis源码解析(六)-配合spring-tx实现事务的原理
mybatis源码解析(一)-开篇 mybatis源码解析(二)-加载过程 mybatis源码解析(三)-SqlSession.selectOne类似方法调用过程 mybatis源码解析(四)-Mapper方法调用过程 mybatis源码解析(五)-mybatis如何实现的事务控制 mybatis源码解析(六)-配合spring-tx实现事务的原理 mybatis源码解析(七)-当my...
2018-03-13 15:51:23 4760
原创 mybatis源码解析(五)-mybatis如何实现的事务控制
mybatis源码解析(一)-开篇 mybatis源码解析(二)-加载过程 mybatis源码解析(三)-SqlSession.selectOne类似方法调用过程 mybatis源码解析(四)-Mapper方法调用过程 mybatis源码解析(五)-mybatis如何实现的事务控制 mybatis源码解析(六)-配合spring-tx实现事务的原理 mybatis源码解析(七)-当my...
2018-02-07 18:19:18 5947
原创 mybatis源码解析(四)-Mapper方法调用过程
mybatis源码解析(一)-开篇 mybatis源码解析(二)-加载过程 mybatis源码解析(三)-SqlSession.selectOne类似方法调用过程 mybatis源码解析(四)-Mapper方法调用过程 mybatis源码解析(五)-mybatis如何实现的事务控制 mybatis源码解析(六)-配合spring-tx实现事务的原理 mybatis源码解析(七)-当my...
2018-01-31 18:50:38 6265
原创 mybatis源码解析(三)-SqlSession.selectOne类似方法调用过程
mybatis源码解析(一)-开篇 mybatis源码解析(二)-加载过程 mybatis源码解析(三)-SqlSession.selectOne类似方法调用过程 mybatis源码解析(四)-Mapper方法调用过程 mybatis源码解析(五)-mybatis如何实现的事务控制 mybatis源码解析(六)-配合spring-tx实现事务的原理 mybatis源码解析(七)-当my...
2018-01-30 10:22:03 22374
原创 mybatis源码解析(二)-加载过程
mybatis源码解析(一)-开篇 mybatis源码解析(二)-加载过程 mybatis源码解析(三)-SqlSession.selectOne类似方法调用过程 mybatis源码解析(四)-Mapper方法调用过程 mybatis源码解析(五)-mybatis如何实现的事务控制 mybatis源码解析(六)-配合spring-tx实现事务的原理 mybatis源码解析(七)-当my...
2018-01-29 17:19:06 5493
原创 mybatis源码解析(一)-开篇
mybatis源码解析(一)-开篇 mybatis源码解析(二)-加载过程 mybatis源码解析(三)-SqlSession.selectOne类似方法调用过程 mybatis源码解析(四)-Mapper方法调用过程 mybatis源码解析(五)-mybatis如何实现的事务控制 mybatis源码解析(六)-配合spring-tx实现事务的原理 mybatis源码解析(七)-当my...
2018-01-29 16:06:13 5486
原创 《SSO系列三》CAS集群部署时session异常
这篇blog描述了,CAS是如何使用session,以及集群部署服务时可能会遇到的session问题。
2017-11-30 17:10:19 5862
原创 《SSO系列二》自己动手写一个SSO
这篇文章介绍一个我学习过程中写的一个Demo,可以让初学者对SSO有一个整体的认识。线上演示我已经把我这个Demo部署在我的服务器上,你可以按照如下步骤体验。
2017-11-30 17:02:47 7145 1
原创 《SSO系列一》初识SSO
单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
2017-11-30 16:58:25 2559
转载 使用commitizen的正确姿势
我们在每次提交代码时,都需要编写Commit Message,否则是不允许提交的。 git commit -m "first commit with userInfo service"编写Commit Message需要遵循一定的范式,内容应该清晰明了,指明本次提交的目的,便于日后追踪问题。commitizen就是这么样一款工具,他用来规范化我们的commit消息。
2017-07-18 15:11:59 10244 1
原创 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 3152
转载 easyui datagrid列中使用tooltip
要实现这样一个效果:数据加载到DATAGRID中,鼠标移至某一列时,会弹出tooltip提示框。
2017-05-02 19:37:37 8922 1
转载 分布式系统原理
一、分布式系统基础重要要点:对外提供无状态节点,内部实现具体有状态或者无状态节点逻辑,节点即可以是提供服务,也可以是存储数据。 拜占庭问题,在分布式系统中的使用,目的是保证服务可用,而不是找出错误的节点,如果。 异常常见情况,机器宕机、网络异常、消息丢失、消息乱序、数据错误、不可靠的TCP。可能是收到消息后宕机、也可能是处理完成以后机器宕机、处理完成任务后发送确认消息是网络异常。也有可能是
2017-04-26 16:07:50 9992 1
原创 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 18799
hudson-3.3.3.war
2017-10-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人