自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 httpclient控制台日志级别设置,控制日志输出

/确定日志工厂类对应哪个工厂级别,我的logback,所以获取的是他的工厂。//第一步获取日志工厂类。//设置工厂的日志级别。

2024-04-13 18:18:45 178

原创 IDEA的方法和类注释模板存档

文件名${PACKAGE_NAME}.${NAME}.java。*系统名称E2P开源系统。*客户E2P。*无。*无。

2022-07-22 08:07:30 174 1

原创 IDEA新旧版本下载指南

众所周知,IDEA最新版本无法无限试用,因此只有选择2021.3.3之前的版本。但是idea官网对版本管理,却依照固定的路径来实现的,这个路径就是。但是很无奈,官方似乎屏闭了历史版本下载的入口。其中XX为你想要的任何历史版本。...

2022-07-18 17:26:58 2313

原创 ByteBuffer解密

ByteBuffer底层维持着如下几个指标,分别是position、mark、limit、capacity关系

2022-03-17 09:50:25 295

原创 资源服务器

2022-01-03 10:06:46 493

原创 Spring事务传播机制中REQUIRES_NEW和NESTED的区别

NESTED是为被嵌套的方法开启了一个子事务,这个事务与父类使用的是同一个连接。REQUIRES_NEW是使用一个全新的事务,这个事务属于另外一条全新的连接。两者最重要的体现,就是在多数据源中,REQUIRES_NEW会再次触发一下数据源的获取,而NESTED则不会...

2021-11-24 16:31:46 2770

原创 maven-shade-plugin对多模块项目打包引起的问题

<configuration> <!--这个表示会生成两个jar包,一个原始的,一个shade的--> <shadedArtifactAttached>true</shadedArtifactAttached> <!--这个表示生成的shade的包 它的后缀名称是什么,通过这个后缀名称,在引用的时候的,就不会出现引用了shade包的情况了。 --> <shadedClassifierName>shade</sha.

2021-05-13 11:01:19 1628

原创 基于mysql驱动进行JDBC源码分析之JDBC的URL解析ConnectionUrl

概述       Mysql实现了数据库单连接、数据库集群、数据库高可用、数据库读写分离模式、MysqlX协议等五种方式连接数据库,对于使用者来说,我们只需配置jdbc的url,就可以这些功能。那么Mysql底层是如何确认使用者的协议的呢?这就离不开对JDBC的url解析类ConnectionUrl。       ConnectionUrl是一个门面类,他提供了一下

2021-04-17 11:24:18 2687

原创 Mybatis的源码解析之处理占位符相关的类TokenHandler和GenericTokenParser

前言Mybatis在处理${}和#{}占位符时,底层使用到了GenericTokenParser类和TokenHandler的实现类。它的实现原理及其简单。GenericTokenParserpackage org.apache.ibatis.parsing;/** * 通用属性解析器 用于解析占位符标签 */public class GenericTokenParser { /** * 占位符开始标志 */ private final Str

2021-03-27 22:27:32 1300

原创 Mybatis源码分析之Configration类 之XML的解析利器XpathParase

XPathParser内部虽然封装了Xptah解析器,但其仅仅使用了Xpath的最简单的数据定位功能。那么Mybatis为什么使用XpathParase而不直接使用Xpath呢?这样的好处有两个,一就是一些公用的属性和方法可以设置默认值,无需手动设置;二是定制化功能,在Xpath功能的基础上,进行特殊的功能封装。所谓的公用的属性和方法设置,这些包括,Xpath的创建流程,其流程如下...

2021-03-26 23:35:44 298 1

原创 Mybatis-plus代码生成器通过Oracle,只生成文件而不能生成字节码的原因探究

源码分析Mybatis-plus逆向工程生成源码的主要流程是在AutoGenerator调用execute()方法时,会根据你设置的DataSourceConfig里的DbType属性,判断你的数据库类型,然后从你的数据库查询出来相应的数据表名,而后将信息存入到TableInfo里,而后进行逆向生成,进行逆向生成的过程中。第一步解析配置:/** * 生成代码 */public void execute() { logger.debug("=================

2020-07-15 15:45:46 1127

原创 Spring的BeanFactory重要属性之PropertyEditor,如何bean的属性转换

PropertyEditor是什么?PropertyEditor是JavaBean规范里,提供的一个高级接口,该接口提供了一些方法规范,这些方法可以将JavaBean的外部数据String类型的数据,转换成JavaBean的内部属性值。PropertyEditorSupport是什么?PropertyEditorSupport是jdk为我们提供的一种实现了PropertyEditor的实现类,我们可以通过继承该类重写我们需要的方法。PropertyEditorRegistrar是...

2020-07-05 22:58:55 251

原创 手动实现AspectJ的编译前、编译后、加载时、加载后的实现方案。

前提思想研究AspectJ的实现,首先必须要明白一个大前提,那就是是其实对于jvm虚拟机来说,它只认符合class文件结构的文件,无论这个文件是从java语言还是AspectJ语言、或者其它什么语言编译的,最终,只要生成的文件符合class文件结构,就能被jvm所识别并加载。同时,我们还要了解一个前提,那就是Aspectj织入功能,其实可以分别在四个阶段进行织入:第一个阶段:编译前。所谓的编译前,就是我们可以使用ajc指令直接对.java文件进行织入,这一个阶段会生成新的class文件结构,并且

2020-05-11 17:16:48 1113

原创 aspectJ的this和target的区别;execution与call在使用ajc编译与LTW之间的神坑

区别:this相当于一个调用追踪链,凡是在this里匹配的类型调用的方法,都是执行方法体的数据。target只针对于里面指定类型的方法。验证举例:this类型的切面:public aspect HellowAj {after():this(aspectj.com.source.Hellow2){ System.out.println(thisJoinPoint...

2020-05-06 17:17:47 380

原创 spring自动注入之default-autowire-candidates、autowire-candidate、default-autowire、autowire的总结分析

spring的xml配置关于自动配置的属性有四个default-autowire-candidates、autowire-candidate、default-autowire、autowire四个属性。default-autowire-candidates和autowire-candidate是作用与注入者,default-autowire和autowire是作用于被注入者,什么是注入者,什么...

2020-04-28 15:18:17 1060

原创 Spring的xml解析基础之校验xml的元素

spring的xml解析校验,有两种方式。第一种,是在xml里指定对应的标签空间命名,这个校验主要的作用就是为了提醒我们在写入时候应该注意的事项。第二种,是解析的时候,使用代码解析,使用代码解析案例如下:...

2020-04-27 14:30:56 344

原创 用设计模式学springboot源码合集(三)程序员的浪漫之Banner

前言springboot的框架太复杂了,如何学习springboot才能不让自己迷失在细节里,其实从设计模式学习就很好,因为设计模式是思想,思想引导行为,只有理解了思想,才能看得懂springboot的行为。正文:Banner大概时springboot整个集合框架里,最简单,也最好理解,同时也是最好玩的一部分了。这部分代码是给程序员装逼用的。Banner是啥玩意呢,就是spring...

2020-04-16 22:15:27 349

原创 用设计模式学springboot源码合集二springboot的环境装配,都装配了个啥!

前言:springboot的框架太复杂了,如何学习springboot才能不让自己迷失在细节里,其实从设计模式学习就很好,因为设计模式是思想,思想引导行为,只有理解了思想,才能看得懂springboot的行为。正文:springboot的环境准备阶段装备了好多环境,而每个环境都是一个PropertySource,每个资源封装对象都是由资源名称和资源组成的,比如说,系统环境变量是一个资源...

2020-04-16 21:35:22 556

原创 用设计模式学springboot源码合集一:观察者模式下的springboot监听

前言:springboot的框架太复杂了,如何学习springboot才能不让自己迷失在细节里,其实从设计模式学习就很好,因为设计模式是思想,思想引导行为,只有理解了思想,才能看得懂springboot的行为。正文:springboot的监听其实和我们用spring时,在web.xml配置的监听是不同的,springboot的监听,是为了监听整个spring的启动、运行过程,而我们在w...

2020-04-15 22:01:00 510

原创 基于jdk8的集合源码学习(二):List集合家族研究(AbstractList)

List集合继承关系如图,我们将根据这层关系进行自上而下的分析,分析每个类出现的原因,拥有哪些方法,这些方法底层是如何实现的:学习一:List接口与AbstractCollection的区别:从这个继承关系图中,我们可以发现,List家族的长辈继承了Collection接口,但是于此同时,还有一个抽象类AbstractCollection实现了Collection,而AbstractL...

2019-09-03 00:19:15 309

原创 基于jdk8的集合源码学习(一):第一篇集合体系一览图

Java集合体系一览图如下:java的集合体系机构就是基于上图,接下来我们将逐层分析各个接口的作用1.Iterable接口: 一般在java里able结尾的都代表着拥有某种功能,比如Serializable代表着序列化,Cloneable代表着对象复制功能,Comparable代表着可比较(即排序的意思),而Iterable则代表着可迭代,而其内部拥有一个方法...

2019-08-28 09:30:56 503

原创 关于mysql的一条关闭异常被挂起的问题:deactivating (stop-sigterm) since xx; xxx ago

这个问题很少出现吧,搜了一圈没找到答案,然后自己排查了一下,排查思路主要就是想想自己自从上次启动动了那些东西,最终发现,其实是因为我将/etc/my.cnf文件做了一个软连接,按理说不会出啥事啊,然而就是因为我这个软连接,导致了mysql停止被挂起,而且kill还杀不掉的那种挂起。至于原因,有时间再看吧...

2019-06-21 19:14:42 7899 4

原创 Mysql学习之constraint/key/primary key/unique/foreign key/constraint的关系

1.constraint就是约束的意思,在MySQL中约束的表现形式有:not null/ primary key/unique隐含有约束功能。2.如果为一个字段创建了约束,除非这个字段是not null ,否则就是为了这个字段即创建了约束又创建了索引,也就是说primary key为主键创建了约束和索引,unique也是一样。但是当primary key 与constraint 关键字搭...

2019-06-18 23:29:24 6020

原创 关于dubbo引用会报错:cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration ca的解决方法

报错的原因:http://code.alibabatech.com/这个域名挂掉了,不知道咋回事,所以无法添加网上的引用;解决:找到你引入的dubbo的jar包,然后解压,找到dubbo.xsd进行本地引用就可以了,但是,引用的时候一定要注意,你引用的这个xsl里必须有你报错的规范,比如说你的标签dubbo:service报错,那么拟引入的xsd里必须有关于这个规范的阐述,为什么我会这么说...

2019-05-15 17:20:32 1215

原创 springmvc接收json方式报400错误,一个后端遇到的很难说明的错误

我用这种方式传了一个json数组,后端使用@requestbody接收,结果总是报400错误,这样一看,检查来检查去没检查出来问题。最终重重困难发现竟然是data1和data2的json格式写错了,我不应该这么写的,正确的方式如下:我去,原来前端可以这么写,怪我这个做后端的小菜鸟太菜了,这样一改,问题解决了  ...

2019-01-03 20:59:15 2239

原创 SpringMVC源码学习(一)

因为最近在研究Springmvc的源码,随便在微信读书上看了《看透Spring MVC 源代码分析与实践》这本书,通过这本数,让我初步了解了Tomcat的结构及工作流程,同时明白了互联网究竟是咋回事。其实说白了,互联网的事情,无论什么框架,做什么用处,都离不开TCP/UDP协议,而Tomcat只是封装了这些协议,虽然没对tomcat的源码进行透彻的分析,但是初步估计,tomcat就是对TCP/...

2018-10-12 11:17:01 524

原创 关于Ehache使用rmi广播集群失败的原因探讨

前言:失败的原因有很多种,而我失败的原因竟然只是xsi:noNamespaceSchemaLocation引用用错了,就因为这个让我搞了一个月才发现,悲痛欲绝。事情经过及处理:首先说明我引用的jar包ehcache-core-2.6.11.jar,而我的ehcache的配置引用的命名空间为http://ehcache.org/ehcache.xsd,结果,集群死活都不成功,而且也不报错...

2018-08-17 11:34:54 329

原创 QQ机器人实现原理之Java篇

1.登录:前言:QQweb端想要登录,首先有两个很重的参考的文件:第一个是map.js这个文件,这个文件是进入到QQweb页面,F5刷新刷出来的,记录着几个重要信息的生成方式:1.登录后,获取好友列表需要传的hash值算法,该算法值如下:其中uin的参数为你的QQ号,ptvfwebqq为空字符var hash2 = function(uin,ptvfwebqq){        ...

2018-08-15 23:04:01 11947

原创 使用SocketChannel和ServerSocketChannel之Address already in use: bind

出现该问题的原因,一个是因为服务器多开了,另外一个极其隐蔽的原因就是客户端使用了bind(地址,端口),而服务端也使用了bind,因此导致端口冲突...

2018-07-18 10:59:09 660

原创 微信爬虫机器人的坑篇之无法获取群组的解决方案

1.微信爬虫实现的方案,详情请参考此链接,作者已经说得很明白了https://blog.csdn.net/wonxxx/article/details/517870412.但是如果你根据作者这些分析进行机器人操作的话,其中 获取好友列表(webwxgetcontact)这个功能你可能是无法获取群组信息的,究其原因是因为你并没有将群聊加入通讯录,只要在微信上,点开你要监听的群组,然后开启将群组加入通...

2018-06-04 11:57:43 2118 1

原创 hql出现could not initialize proxy - no Session的另外一个原因

1.重中之重的原因是表中有非空字段,但是你save or update之时没有注意这个,然后才报了这个错误!2.当然还有就是延迟加载设置的策略,这个你可以搜索别的文章看一看如何设置

2017-12-11 15:33:02 332

原创 关于项目突然启动缓慢或者停留在Initializing Spring FrameworkServlet xx的原因

1.原因很简单,因为你的项目里出现了断点,所以加载项目很慢,如果你给tomcat设置启动时间了,那么通tomcat就启动失败!2.至于你为什么仔细检查了项目,都没有发现断点,原因很简单,你是在项目启动后打的断点,再重启可能短点的标志消失了。

2017-12-08 02:48:09 7371 11

原创 通过jug 2.0.jar的成功下载的猜想

1.maven的配置为以下方式时,下载出错dependency>      groupId>org.safehaus.juggroupId>      artifactId>jugartifactId>      version>2.0.0version>  dependency>  2.maven以以下配置时,成功下载:dependency>      groupId>o

2017-11-26 20:25:04 1868

原创 关于log4j和slf4j的使用说明

1.log4j是日志类基础,slf4j需要依赖他,同时还需要一个log4j和slf4j的媒介来整合他们俩。简而言之,log4j+slf4j+(slf4j--log4j)三位一体才能爽歪歪!2.三者的版本如何搭配选择?答案是,直接在maven库搜索slf4j-log4j的jar包,使用maven下载是会自动生成相应的log4j和slf4j的jar包。3.如果想要输出日志,log4j的prop

2017-11-23 23:21:12 536

空空如也

空空如也

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

TA关注的人

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