- 博客(43)
- 资源 (16)
- 问答 (1)
- 收藏
- 关注
原创 mybatis Mapper对象执行一个方法的底层实现原理
针对之前简单梳理过一次mybatis的底层源码,但是那只是一个简答你的加载过程,而真正的一个Mapper类执行一个方法并没有说清楚,就行下面两行,到底经历了什么,我们拿到了数据库id为1的学生信息。@AutowiredUserMapper userMapper;User user = userMapper.selectById(1);首先,我们要清楚,对Mapper接口对象,把他们...
2019-08-14 15:33:45 1068
原创 mysql之主键插入冲突就跟新(mybatis篇)
很多时候我们都会遇到插入数据导致主键冲突这种情况,我们就希望能更新这条记录而不会报错。在MySQL1.4以后就出现相对应的关键字来解决这个问题 on duplicate key update. 当我们在插入数据库数据的时候,遇到唯一索引或者主键冲突就会根据主键进行更新指定的字段的数据,我们一般都是基于mybatis做数据库的操作,所以我们看下mybatis是如何写sql语句的:对于单条的...
2018-08-09 14:47:12 6859
原创 java关于内存溢出的分析,mat工具
对于我们在现实的场景中,或多或少会遇到内存溢出的问题,可怎么排查这个问题呢?首先我们需要了解一下关于java中自身安装自带的几个命令:jmap,Jvisualvm,jstack等。一般情况下,对于内存,cpu,线程的监控用Jvisualvm这个命令我们很清晰的能查看系统的运行情况。如果我们需要定位内存溢出的代码,就必须用jmap导出此时的对文件,用MAT工具进行查看。我看了很多的博客说eclips...
2018-07-10 16:56:28 1070
原创 关于线程异常的处理
之前在面试阿里巴巴的时候,其中一个面试题如标题,说实话以前真没有注意过这个,所以根本不知道,下来就翻看各种资料了解到在线程的Thread中有一个内部接口类UncaughtExceptionHandler,可以去处理线程抛出来的异常。例子:基于Thread:public class Test implements Runnable { @Override public void run() {...
2018-07-03 14:56:27 2168
原创 设计模式之观察者模式
观察者模式,从字面上看,就是当触发一件事情的时候,会做出相应的对策。被观察者处在一个被监视的环境下。我们都知道卧底,就是一种抽象的观察者模式。然而我们的项目中也大量的用到观察者模式,比如:消息订阅,监听器。首先,观察者模式,需要有几个角色,被观察者,观察者,以及业务实现。 抽象一个观察类,被观察者类,目标类,需要实现观察者类,以及实现自己行为抽象类,执行者需要实现观察者类,当被观察者有行动,通过拿...
2018-07-02 15:56:54 151
原创 mybatis源码解析之三
上次说到执行器的的执行过程,接下来看下数据库的初始化Sqlsession。首先,入口在SqlSessionFactoryBean这个类里面,他实现了FactoryBean,InitializingBean,ApplicationListener这三个类,通过实现FactoryBean类,进行SqlSessionFactory的构造,调用的是:public SqlSessionFactory get...
2018-06-22 14:01:29 140
原创 mybatis源码解析之二
上面看了configuration的初始化,接下来我们看下执行器。当我们在注入了,mapper后,调用mapper类的一个方法,执行器是怎么执行的。首先,对于执行器有几种类型包括:简单,批量。默认是简单执行器。首先,我们对于Mapper的注入,我们应该了解他的代理类是MapperFactoryBean...
2018-06-20 14:49:51 148
原创 设计模式之模板模式
在设计模式中最简单理解的要数模板模式了,就是运用了java的继承这一特性。抽象类定义一系列的完成某种功能的方法,由子类按照自己的规则去实现。举个例子,在springmvc中我们经常写拦截器,其实他就是模板模式。在类开始做什么,过程中做什么,结束做什么,有时候我们只需要实现其中一个地方。是不是很简单。 类图:...
2018-06-08 11:42:28 154
原创 mybatis源码思路分析
之前写了一篇关于Mybatis的源码分析,感觉思路不是很清晰,没有一个大框架的思路去解析。因为如果只是看源码,看到这么多的包,都有一种很崩溃的感觉,那我们真是too yong too simple了,包下的类更让你疯狂,其实一个框架没有这么多类的支持怎么可能健壮和严谨,并且已于我们使用。其实看到这些,想一想我们的项目基本差不多,为什么我们对我们自己的项目很熟悉,因为我们经常在维护,编写,所以我们熟...
2018-06-07 10:01:41 245
原创 设计模式之策略模式
说起策略模式,简单的几句话就是利用java的继承和多态实现的。就是一个接口,有自己的实现,在提供一个策略类去选择那个实现去完成任务。 比如:最近在写rocketmq的时候,对于生产中有几种类型,第一种简单发送,第二种顺序发送,第三种事务发送消息,这个时候我们就可用到策略模式去实现这个功能。而策略模式和工厂模式差不多,我们在纠结用工厂还是策略模式的时候,我觉得最重要的一...
2018-06-06 10:44:11 106
原创 设计模式之原型模式
在程序的运行过程中,我们总是会遇到这样的情况,我们会根据数据库查询出来的集合在用单个的类进行业务逻辑的操作,这个时候我们会new出很多的对象进行处理。虽然这样能解决问题,但是他也带来了效率低的问题,因为创建对象是很消耗cpu资源,而cpu资源是很宝贵的,为了解决这个问题,以及需要复制对象,我们就用到了原型模式。 原型模式,顾名思义就是用已经创造好的复制一份出来。 ...
2018-06-05 11:02:49 89
原创 设计模式之建造者模式
对于建造者模式来说,它解决的问题其实和工厂模式有点类似,但不同的地方是,工厂模式在创建对象的时候,如果固定死创建对象时功能的顺序,那就无法应对,对象的功能的顺序变化。 比如:我们在建造房子的时候,框架基本就是:打地基,垒墙,上定,,外墙,防水等等。基本的情况下,我们可以按照一个顺序来。但是,在现实中,建造过程中,一个建造团队会包揽很多的工程,加上天气原因,对于不同的房...
2018-06-04 17:25:12 103
原创 设计模式之装饰器模式
上一篇写了关于工厂模式的博客,最后抛出了一个小问题,产品需求永远在变动,所以说用工厂方法就会有一定的局限性,接下来我们看下装饰器模式是如何解决这个问题的。 装饰器模式,听名称就是要修饰已经好的对象。比如:对于建造车,开始的时候造车是很简单的,可能有很多功能不完善,但是那个时候能造出跑的车已经是科技的很大进步了,可能开始的时候车没有空调,定时巡航,电子手刹等等,但是基本...
2018-06-01 11:00:56 425
原创 设计模式的初探--工厂模式
首先,对于一个新的事物,新技术点,我的思维导向通常是:Why-How-What黄金圈理论,所以,对于设计模式,首先什么是设计模式,我首先查询了维基百科,给出的定义是:是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。这个术语是由埃里希·伽玛(Erich Gamma)等人在1990年代从建筑设计领域引入到计算机科学的。咋一看这个解释也是很模糊,个人觉得,在软件工程里面,设计模式
2018-05-29 14:13:24 168
原创 rocketmq搭建和简单的使用
经常在项目中用到rocketma但一直没有很深入的去理解他,最近一段时间简单的搭建和理解一下,先简单的记录一下,后面会写几篇java操作rocketmq源码方面的内容,下面会从三个方面去写,什么是rocketmq,rocketmq在项目中的角色,如何使用rocketmq。 rocketmq定义:中间件消息服务,通俗来讲就是分布式业务之间传递消息(这样说搞得不是分布式不...
2018-05-17 17:04:03 888
原创 浅谈关于Java中map这个类衍生的类
最近又研究了一下关于map衍生的类,hashMap LinkedHashMap TreeMap hashTable ConcurrentHashMap,没有对代码的粘贴,纯粹用文字根据自己的理解看了一遍,以此简单的整理。/** *定义:Map java中的一种数据存储结构,它的存储类型是key,val形式的,key,val都可以为空,但只保存一份,key的存储是基于键的hash *值进行一些运算得...
2018-04-27 10:32:04 675
原创 用navicat创建函数
DELIMITER ;;CREATE DEFINER=`root`@`%` FUNCTION `dateformat`(`dateTi` VARCHAR(50))RETURNS varchar(30)LANGUAGE SQLDETERMINISTICCONTAINS SQLSQL SECURITY DEFINERCOMMENT ''BEGIN RETURN (SELECT case WH...
2018-04-10 17:06:05 4468
原创 简单记录mongodb同步不同环境集合的数据
db.runCommand({cloneCollection:"库名称.集合名称",from:"mongo的连接ip"})
2018-03-15 16:21:28 375
原创 Context namespace element 'component-scan' and its parser class [org.springframework.context.annotat
org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [annotation.xml]; nested exception is java.lang.IllegalStateExcepti
2018-01-24 17:24:54 705
原创 elasticsearch transport client is closed
关于elasticsearch生成索引时报transport client is closed,的解决方案。首先,代码开始写的时候并没有报这个错,运行一段时间后,就报这个错了。所以问题很难定位,因为如果是代码本身就有错误,开始的时候就应该出现问题。开始,提出两点问题原因: 1)服务器的配置 2)索引的分词器和解析器是否有问题。后来经过多方 面的排查,排除了上面的
2018-01-04 14:33:27 7074
原创 mybatis源码解析以及执行的流程
以往总是看别人的源码解析,也曾几何时希望自己能静下心来了解一下底层的东西,但终久没有行动起来。可能的原因我总结有以下几点:1.底层的代码需要大量的时间来仔细的阅读和揣摩。2.技术受限制,包括不知道怎么阅读和真的看不懂底层的代码以及设计思想。对于以上问题,我的应对方法是:1.时间,我们总能挤出来,比如我,在公司上午看源码,下午写公司需求(提升技术,公司也是
2018-01-03 18:18:28 453
原创 作为工程师如何在接新需求的时候的注意事项
最近一段时间,公司的网站大改版,改版意味着,新需求的添加和老需求的修改,这导致我在开发中遇到了很多的问题,以至于出现大量bug,对于出现这些问题,做一下总结,以避免以后还会出这样的错误,不仅仅是对自己的一个检讨,也是对技术的负责。新需求特点:列表:分页数,排序规则,数据源展示规则。详情:条件查询,数据源展示规则。新增:新增的规则,默认值。删除:删除的规则,逻辑还是业务删除。
2017-12-19 10:40:12 325
原创 spring-dada-elasticsearch3.0.0+elasticsearch5.5.0+ik+synonum构建实时的搜索引擎
spring-dada-elasticsearch3.0.0+elasticsearch5.5.0+ik+synonum构建实时的搜索引擎
2017-11-23 17:40:39 860
原创 flume+kafka+zookeeper 单机实现实时数据的获取
之前在做大数据的时候,一直不知道数据是怎么上传到hdfs的,问了架构师用flume,自己也一直想玩一下flume,无奈没太多的时间,今天有点时间,就查找资料,搭建了一个单机环境下的日志监控。所有资料全部来源与网络,我只是做了一个简单的整合。首先,第一步安装flume。1.安装flume,首先要安装好jvm。2.下载flume。地址 http://mirror.bit.edu.cn/ap
2017-08-07 15:49:43 1871
原创 设计模式番外篇
对于设计模式,我们都知道,我们需要了解它,逐步的吃透它,不仅仅是为了应对当前这个激烈竞争的市场环境,在面试时给自己额外加分,而是我们如何在项目中去运用它。知其然,必要知其所以然,在学一个新的技术的时候,有时候我们只是照猫画虎的用用是不行的,我们需要用额外的手段加深自己的记忆和理解力。 之前在4g思维密码中,看到一张图,介绍如何高效率的吸收自己所学的知识,其中最好的方式是转教别人/
2017-08-01 14:15:44 328
原创 如何在高强压,事务繁多的情况下,保持认真,清晰,严谨的思路
最近在公司做了一个小功能,颇有感触,以此纪念,缅怀,激励自己,并摈弃一些陋习。 事情是这样的,一个很简单的功能,分app和pc,接口和pc我负责(我属于后端,前端略研究,没办法,硬着头皮上)。规定时间是9天,对于我来说,9天做接口和写文档,特别特别的宽松。但是,对于一个只用chrome,大屏幕做前端的我来说,ie兼容和小屏幕的缩放问题我确实不行,没办法只能硬扛,接口加文档,我
2017-07-19 10:51:05 727
原创 关于设计模式的那时,那情,那景
回顾自己的java工作生涯,已经度过了3个春夏秋冬。而,我对自己的评价时,高不成,低不就。有时候自己也很苦恼,怎么做才能突破自己呢?工作,我勤勤恳恳,对于技术,我也时时的了解,掌握,可是底层的东西却很难消化掉。第一,没有一个很好的思路去了解底层(加上自己的技术确实不能一下找到感觉),功力不够,不能怪别人,曾经的用的多会用,上升到,不仅会用也要懂起底层的思想。思想,思想,我左思右想,可还是悟不出来。
2017-07-18 18:49:11 175
原创 关于js获取前几周,几个月的js小脚本
最近在做项目的时候,遇到了获取上几周,上几个月的的开始时间,和结束时间,在网上搜罗了一遍并没有完全满足自己需求的,就根据网上的例子,简单修改了一下,供大家参考: var getWeek=function(mark){ var week = "日一二三四五六".split("")[new Date().getDay()]; var endTime ;
2017-07-14 16:59:00 754
原创 在用java 对hbase多条件组合查询过程中遇到的坎坷
最近公司的数据部门提出了要做大数据分析的需求,大数据方确定数据储存在hbase中,java工程师进行调用展示。我作为一个java工程师,觉得这很easy,不就是展示一个非关系型数据库的数据吗?当时我还不了解hbase,觉得不会很困难,然而在接下来的工作中,我尝到了苦头。首先我在熟悉hbase的时候,由于过度的藐视,导致我在后面的编码中出现了很多大的偏差,比如:再开始学之前,知道rowkey是唯一的
2017-05-18 11:47:18 3153
转载 判断日期的今天,昨天,明天
最近在做判断时间是今天,昨天,明天,在网上找了一个例子用的时候不怎么对,特此出一个自己在之前网上例子中修改的代码,不想去找原作者就此发一个博客。import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.D
2017-01-16 10:49:23 841
原创 uml图形表示
1.实线箭头 关联2.虚线肩头 依赖3.空心三角+实线 继承4.空心三角+虚线 实现5.空心菱形+实线 聚合(合唱团,需要很多的歌手)6.实心菱形+实线 组合(汽车,又很多零件
2016-11-11 14:08:28 369
原创 关于springmvc的跨域问题
废话不多说直接上代码1.首先是一个过滤器:import java.net.URL;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springf
2016-06-23 14:27:28 345
原创 innobackupex: Error: Failed to connect to MySQL server as DBD::mysql module is not installed at /usr
在执行/usr/bin/innobackupex --user=root --password=123 --defaults-file=/etc/my.cnf --databases='test' /tmp/backup/ 出错
2015-11-12 12:17:18 2252
原创 redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required.
在用jedis集群中,用ShardedJedisPool对主从进行hash算法选取redis服务端,然而我在redis主从都设置了密码,在配置连接时报如下错误redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required. at redis.clients.jedis.Protocol.pr
2015-11-03 13:17:33 8176 1
原创 zookeeper启动没发现错误,但是是失败的
运行zookeeperd后显示启动成功:JMX enabled by defaultUsing config: /data/programfiles/zookeeper-3.4.5/bin/../conf/zoo.cfgStarting zookeeper ... STARTED但用zkServer.sh status查看,反馈如下:
2015-09-09 17:24:44 806
原创 一个简单的FCKEditor步骤
第一步:首先打开下载的fckEditor目录_samps下面的default.html第二部:打开页面查看框架源代码 复制form里面的内容// Automatically calculates the editor base path based on the _samples directory.// This is usefull only for t
2014-09-29 13:01:14 471
转载 eclipse里面快捷键大全
一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合。通过这些组合可以更加容易的浏览源代码,使得整体的开发效率和质量得到提升。 1. ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.xml。美中不足的是这组快捷键并非在所有视图
2014-09-25 12:47:22 593
基于socket.io聊天室功能
2016-10-25
IKAnalyzer2012.jar
2014-09-09
类DataSourceAdvice实现MethodBeforeAdvice,没起作用
2015-04-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人