自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (2)
  • 收藏
  • 关注

原创 记一次docker网络排查

docker 网络排查

2022-07-30 16:36:16 1029 1

原创 虚拟网络设备

linux 虚拟网络设备

2022-07-30 16:23:15 873

原创 iptables

iptables

2022-07-30 16:19:19 382

原创 数据源导致整个程序卡死的问题

上周末,客服突然在群里说整个系统不可用了,当时看到这个消息,心里慌的一批。找到运维,通过jmap 命令导出当前的dump文件,并且通过jstack 导出当前的堆栈信息,然后就是艰辛的数据分析与代码跟踪路径了。下面是我的心路历程以及思路。拿到对应的线程的堆栈信息,发现所有的tomcat 线程都是阻塞在德鲁伊的takeLast上面。"http-nio-8080-exec-3" #31 daemon prio=5 os_prio=0 tid=0x000000001bc92000 nid=0x57b4 w

2021-08-31 16:53:09 1763

原创 记一次 maven resource 对文件自动编码导致文件不可用的问题

记一次 maven resource导致的问题在最近一次对接中,由于对方采用了秘钥进行加解密,于是将公钥放在了项目中,但是在进行单元测试的时候一直提示java.security.InvalidKeyException: IOException: DerInputStream.getLength(): lengthTag=111, too big.而对应的代码调用其实也是很简单的,代码如下public static void target(int i) { new Exception

2020-12-29 19:20:10 548

原创 windows 环境下Paths.get导致的问题

windows 环境下Paths的问题一般操作一般操作导致的结果一般操作说明正常的操作正常操作说明一般操作public static void main(String[] args) throws Exception { try{ String path = Test.class.getClassLoader().getResource("").getPath(); String realPath = path = path+"key/p

2020-12-29 19:02:02 2713 1

原创 15_springmvc

再说springmvc的时候,我觉得有必要提一下servlet中filter,listener以及servlet都对应的有初始化方法。那么他们的执行顺序是怎样的呢?在servlet容器的启动过程中,首先会优先调用listenner的contextInitialized方法。然后调用filter的init方法。当容器启动完成后。如果有请求进来,会对第一次请求调用对应的servlet的初始化方法,...

2019-09-25 16:24:55 92

原创 14_spring事务

在spring中开启事务可以通过在xml中配置以及使用注解的方式,我们下面按照xml配置的方式进行讲解。我们来回顾一下spring aop实现的过程1:所有的bean在初始化之后会调用后置处理器的postProcessAfterInitialization2: 查找合适的增强器3:根据查找到的增强器为当前的类实现代理(jdk或者cglib)。其中会将advisor的advice进行...

2019-09-24 08:45:30 119

原创 13_pageHelper在mybatis的分析

如果我们要在mybatis中使用PageHelper,我们第一步需要将PageHelper配置到mybatis的配置中 <plugins> <plugin interceptor="com.github.pagehelper.PageHelper"> <proper...

2019-09-11 17:38:50 429

原创 12_Spring整合Mybatis源码

在我们打算在spring中使用mybatis的时候,一般需要在配置文件配置如下面的两个beanMapperScannerConfigurer bean 负责扫描对应的dao文件类,生成对应的代理。所以需要配置对应的dao文件的路径。SqlSessionFactoryBean 解析映射文件。所以需要配置对应的映射文件所在路径。 <bean id="sqlSessionFact...

2019-09-11 16:25:16 332

原创 11_AOP原理

在spring中。Aop是其一大特色。要想开启spring的aop功能,可以通过在xml中配置 <aop:aspectj-autoporxy/> 开启注解,然后定义对应的切面,切点来完成。同样也可以通过@EnableAspectJAutoProxy注解来完成开启。在分析之前我们首先通过一个例子 @Configuration @ComponentS...

2019-09-03 18:43:44 186

原创 10_finishBeanFactoryInitialization

finishBeanFactoryInitialization 的作用就是初始化剩余的所有单实例bean。除了一些需要提前初始化的类。比如前面实现了BeanDefinitionRegistryPostProcessor(在invokeBeanFactoryPostProcessors方法的时候)。通过beanFactory.getBean提前获取的。最后的都是在该方法中完成创建。 pr...

2019-08-26 17:19:48 163

原创 9_registerBeanPostProcessors

进入PostProcessorRegistrationDelegate的registerBeanPostProcessors其实这里边主要做的逻辑就是获取所有的处理器,然后根据是否实现PriorityOrdered,Ordered接口进行排序后依次加入到beanFactory的beanPostProcessors属性中。后面使用可以快速取出。再加入的时候有个小细节需要注意if (beanP...

2019-08-23 09:23:15 119

原创 8_invokeBeanFactoryPostProcessors

PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(beanFactory, getBeanFactoryPostProcessors());进入到对应的方法中 public static void invokeBeanFactoryPostProcessors( ...

2019-08-22 16:44:12 113

原创 7_invokeBeanFactoryPostProcessors方法讲解前的一些描述

invokeBeanFactoryPostProcessors方法是一个很好的扩展点。在需要进行统一组件扫描的情境下,通过实现BeanDefinitionRegistryPostProcessor该接口,复写其中的postProcessBeanDefinitionRegistry方法,可以很方便的去做响应的逻辑处理,如dubbo的service扫描。以及mybatis的Mapper 扫描。dubb...

2019-08-22 14:32:57 279

原创 6_prepareBeanFactory方法分析

前面已经分析了refresh函数中的obtainFreshBeanFactory方法,在该方法中,如果是通过ClassPathXmlApplication的话,会在这里边进行beanFactory的创建以及xml中的bean的解析与注册。下面继续分析prepareBeanFactory方法.主要是对beanFactory进行相关的参数设置,包括classLoader,expressionResol...

2019-08-22 13:35:21 213

原创 5_注解注册bean

在spring中如果想通过扫描注解的方式注册bean的话,可以通过在xml配置如下代码 <context:component-scan base-package="com.test.xml"/> 那么我们来分析一下componet-scan标签做了什么动作。按照我们之前的知识可以发现这个标签不属于默认标签的声明空间。所以会调用parseCustomer进行自定义标...

2019-08-22 11:18:06 134

原创 4_自定义标签的解析

先进性一个简单的自定义标签的例子首先在META-INF下创建文件spring.handlers(名字和路径固定)在其中添加 http\://www.test.com/schema/tags/urlMap=com.test.common.security.sdk.spring.handler.UrlMapNamespaceSupport 这一步是为了向s...

2019-08-22 09:10:38 223

原创 3_默认标签解析

private void parseDefaultElement(Element ele, BeanDefinitionParserDelegate delegate) { //import标签 if (delegate.nodeNameEquals(ele, IMPORT_ELEMENT)) { ...

2019-08-21 17:42:37 116

原创 2_XML形式bean的解析

在Spring中,注册一个bean分为两个方式,一个是通过注解扫描的方式,一个是通过xml的方式。下面我们就针对Spring的xml方式注册解析bean的过程进行分析通过跟踪代码进入AbstractApplicationContext类refresh方法在refresh方法中调用了obtainFreshBeanFactory();上篇文章提到过该类。该类是用来获取对应的beanFactor...

2019-08-21 16:52:30 204

原创 Spring源码分析(一)

在进行spring调用获取bean的时候,我们经常通过如下方式获取到一个对应的bean ApplicationContext applicationnContext = new ClassPathXmlApplicationContext("context.xml"); String []beanNames =((ClassPathXmlApplicationContext) a...

2019-08-21 14:42:24 353

原创 sychronized的概述

Java编程语言提供了多种用于线程间通信的机制,这些方法中最基础的就是同步(synchronization),他是使用监视器实现的,Java中每个对象都与一个线程可以锁定或解锁的监视器相关联,在任何时刻,只有一个线程可以持有某个监视器上的锁。线程t可以多次锁定某个特定的监视器,而每个解锁操作都会抵消一次锁定操作的效果。synchronized语句计算的是对对象的应用。然后他试图执行在该对象监视器...

2018-09-28 10:52:37 140

原创 类的初始化阶段

以下情况发生时,会触发类的初始化1:创建了类的实例2:该类的static方法会被调用3:static域被赋值4:static域被调用(当前域不是一个常量变量)[常量变量:用常量表达式初始化的简单类型或String类型的final变量,所谓常量表达式就是指简单类型值货String对象的表达式]5:子类被初始化的时候,父类也需要被初始化。ps:对static域的引用只会导致实际...

2018-09-11 11:01:41 296

原创 java类型转换

类型转换Java中的类型转换可以分为13种,1 标识转换 是最简单的就是同种类型之间的转换。2 拓展简单类型转换 拓展简单类型转换涉及到基本数据类型,比如byte转换为short,int,long,float,double;short转换为int,long,float,double;int转换为long,float,double.以及long转换为float,double.其中针对以下几种情况数字...

2018-07-02 15:27:03 7403 2

原创 java类型和范围值

在java类型中存在三种类型,分别为:简单类型,引用类型以及空类型。同样对应的有三种数据值,简单值,引用值以及null。其中null是一种特殊的类型。由于null的类型没有名字,所以不能声明一个变量是空类型的,同样不能将变量类型转化为空类型。数字类型包括整数类型和浮点数类型。其中整数类型包括byte,short,int,long.他们分别是8,16,32,64位有符号二进制补码表示的整数。char...

2018-06-28 10:58:45 343

ireport(报表开发工具)

报表开发工具,用于excel报表的开发的ireport

2014-12-26

svn下载资源包

这是一个用于myecilipse和eclipse中的svn插件

2014-12-26

空空如也

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

TA关注的人

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