自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 logback用java代码创建logger

直接贴代码import ch.qos.logback.classic.Level;import ch.qos.logback.classic.Logger;import ch.qos.logback.classic.LoggerContext;import ch.qos.logback.classic.encoder.PatternLayoutEncoder;import ch.qos.logback.core.rolling.RollingFileAppender;import ch...

2020-06-18 13:14:15 846

原创 CentOS6.5安装Docker

(1)安装 Fedora EPEL。如下命令和输出 [root@iZ94v4b1udpZ tomcat]# rpm -ivh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpmRetrieving http://dl.Fedoraproject.org/pub/epel/6/x86_64/epe

2017-03-17 14:07:37 838

原创 java keytool创建证书

概述为了实现消息认证,使用Java自带的 keytool 命令可以生成密钥及证书文件,首先生成密钥及证书信任文件。 Server需要: 1)KeyStore:保存服务端的私钥; 2)Trust KeyStore:保存客户端的授权证书 Client需要: 1)KeyStore:保存客户端的私钥; 2)Trust KeyStore:保存服务端的授权证书证书提供方创建证书只需两步

2017-03-17 14:06:06 556

原创 总结Spring中工厂后处理器

工厂处理器是一种特殊的Bean,这种Bean并不对外提供服务,它甚至可以无需id属性,它主要负责对容器本身进行某些特殊的处理。Spring中有两类工厂后处理器,一个是BeanFactoryPostProcessor,它是所有工厂后处理器的顶层接口;另一个是BeanDefinitionRegistryPostProcessor,它继承自BeanFactoryPostProcessor,设计它的目的是使

2017-02-14 16:46:03 2201

原创 从诸葛亮博望坡火烧曹军谈Spring AOP 的五种使用方式

曹操自剿黄巾,讨董作,擒吕布,灭袁绍后,队伍达到鼎盛期,拥有兵将100余万,为了统一全国,派手下将领夏候淳领兵十万攻打新野。时当秋月,秋风徐起,夏侯惇引兵至博望坡,新野危在旦夕。   刘备请军师诸葛亮对策。诸葛亮给出的计策是引诱曹军到达博望坡南处后实施火攻。命赵云在北部与曹兵对敌,只输不赢,刘备引本部人马兵援赵云诱敌深入,将曹兵引入峡谷。命关羽领兵1000在博望坡之左玉山右边的安林脚下伏兵,不可动,

2017-02-13 21:12:02 1687

原创 Spring AOP总结

Spring AOP的重要对象Spring AOP的参与者。切面(Aspect): 一个关注点的模块化,这个模块会横切多个对象。Spring中使用org.springframework.aop.Advisor作切面。连接点(Joinpoint): 程序执行过程中明确的点,如方法的调用或特定的异常被抛出。Spring中使用org.aspectj.lang.JoinPoint为连接点对象。切点(Poin

2017-02-12 14:31:27 2152

原创 玩转Cglib代理

概述和JDK动态代理的思想一样,Cglib也为方法调用提供了回调。Cglib提供了多个回调接口,它们都继承了一个net.sf.cglib.proxy.Callback的marker接口。Cglib为Callback接口提供了如下7个子接口。 (1)net.sf.cglib.proxy.InvocationHandler 这个接口和JDK提供的java.lang.reflect.Invocati

2017-02-11 15:00:36 643

原创 玩转JDK动态代理

概述JDK动态代理的两个主要类: java.lang.reflect.InvocationHandler:执行代理对象的方法时的回调接口。在这个接口中编写与代理业务相关的代码。它在JDK中的定义如下。public interface InvocationHandler { /** * @param proxy JDK生成的代理对象 * @param method 被代理

2017-02-11 14:48:27 347

原创 Spring4.3.x 容器中bean的创建过程(5)—— 注册bean的销毁方法

概述在Spring4.3.x 容器中bean的创建过程(1)——走进初始化bean的主要战场一篇中我们找到了初始化bean的主要场所在AbstractAutowireCapableBeanFactory类中的doCreateBean方法中,在这个方法中首先调用createBeanInstance方法创建bean的实例;然后调用populateBean方法设置bean的属性;接着调用initializ

2017-02-10 12:11:45 1376

原创 Spring4.3.x 容器中bean的创建过程(4)—— 执行bean的初始化方法

概述在Spring4.3.x 容器中bean的创建过程(1)——走进初始化bean的主要战场一篇中我们找到了初始化bean的主要场所在AbstractAutowireCapableBeanFactory类中的doCreateBean方法中,在这个方法中首先调用createBeanInstance方法创建bean的实例;然后调用populateBean方法设置bean的属性;接着调用initializ

2017-02-10 12:09:33 568

原创 Spring4.3.x 容器中bean的创建过程(3)—— 初始化bean的属性值

概述在Spring4.3.x 容器中bean的创建过程(1)——走进初始化bean的主要战场一篇中我们找到了初始化bean的主要场所在AbstractAutowireCapableBeanFactory类中的doCreateBean方法中,在这个方法中首先调用createBeanInstance方法创建bean的实例;然后调用populateBean方法设置bean的属性;接着调用initializ

2017-02-10 12:07:39 792

原创 Spring4.3.x 容器中bean的创建过程(2)——实例化Bean

概述在Spring4.3.x 容器中bean的创建过程(1)——走进初始化bean的主要战场一篇中我们找到了初始化bean的主要场所在AbstractAutowireCapableBeanFactory类中的doCreateBean方法中,在这个方法中首先调用createBeanInstance方法创建bean的实例;然后调用populateBean方法设置bean的属性;接着调用initializ

2017-02-10 12:04:50 5768 1

原创 Spring4.3.x 容器中bean的创建过程(1)——走进初始化bean的主要战场

概述spring创建bean时需要一个重要的对象,那就是BeanDefinition对象,spring在创建BeanFactory时会把xml配置文件和注解信息转换为一个个BeanDefinition对象,BeanDefinition对象存储的是单个bean的配置信息,比如依赖类、scope、是否延迟加载等等,对于BeanDefinition的创建过程,可以阅读我的Spring4.3.x 浅析xml

2017-02-10 12:02:09 1619

原创 Spring4.3.x 浅析xml配置的解析过程(11)——解析aop命名空间之scoped-proxy标签

概述Spring为生命周期长的bean调用生命周期短的bean提供了三种解决方案。第一种是使用默认命名空间(beans)的<look-up>标签;第二种是使用context命名空间的<context:component-scan>解析@Scope注解;第三种是使用AOP命名空间的<aop:scoped-proxy>标签装饰生命周期短的bean。<aop:scoped-proxy>的使用如下<bean

2017-02-09 12:38:20 1864

原创 Spring4.3.x 浅析xml配置的解析过程(10)——解析aop命名空间之aspectj-autoproxy标签

概述Spring的AOP命名空间提供了<aop:config>、<aop:aspectj-autoproxy>和<aop:scoped-proxy>三大标签。前两个标签的作用是想指定pointcut(切点)提供adivce(增强)处理,而<aop:scoped-proxy>的作用是对生命周期短的bean提供装饰,使生命周期短的bean能被生命周期长的bean正确调用。这一篇不会探讨<aop:scop

2017-02-09 12:35:43 1742

原创 Spring4.3.x 浅析xml配置的解析过程(9)——解析aop命名空间之config标签

概述spring为简化AOP在xml文件中的定义而创建了一个http://www.springframework.org/schema/aop命名空间,这里我简称为aop命名空间。spring在解析xml配置文件内容的过程中遇到非默认命名空间时,会查找系统中所有META-INF目录下的spring.handlers文件中与命名空间对应的处理器,我们可以在spring-aop-x.x.x-RELEAS

2017-02-09 12:34:29 1518

原创 Spring4.3.x 浅析xml配置的解析过程(8)——解析context命名空间之component-scan标签

概述Spring context命名空间有property-placeholder、property-override、annotation-config、component-scan、load-time-weaver、spring-configured、mbean-export和mbean-server 8个标签。property-placeholder和property-override标签的解

2017-02-09 12:25:59 2869 1

原创 Spring4.3.x 浅析xml配置的解析过程(7)——解析context命名空间之annotation-config标签

概述Spring context命名空间有property-placeholder、property-override、annotation-config、component-scan、load-time-weaver、spring-configured、mbean-export和mbean-server 8个标签。上一节探讨了 property-placeholder和property-overr

2017-02-09 12:09:28 1269

原创 Spring4.3.x 浅析xml配置的解析过程(6)——解析context命名空间之property-placeholder和property-override标签

概述在上一篇解析自定义命名空间的标签 中,我们已经知道解析自定义命名空间的标签需要用到NamespaceHandler接口的实现类,并且知道spring是如何获取命名空间对应的命名空间处理器对象的。因此我们很容易就能在spring-context包下的META-INF/spring.handlers文件中找到http://www.springframework.org/schema/context命

2017-02-09 12:00:41 2931

原创 Spring4.3.x 浅析xml配置的解析过程(5)——解析自定义命名空间的标签

概述在上一篇解析<bean>标签及其所有子标签我们详细探讨了如何使用<bean>标签来创建一个BeanDefintion对象。这一篇我们开始探讨一下spring如何处理其它命名空间的xml标签,比如spring扩展的http://www.springframework.org/schema/context、http://www.springframework.org/schema/p和http://

2017-02-09 11:57:42 2821

原创 Spring4.3.x 浅析xml配置的解析过程(4)——解析bean标签及其所有子标签

概述在使用ResourceLoader创建Resource对象一节中,我们探讨了Spring如何正确的查找我们指定的配置文件并为配置文件生成Resource对象。在使用DocumentLoader创建Document对象一节中,我们又已经解析了Spring通过xerces如何把Resource对象中的XML内容转换成Document对象。在浅析Spring4使用XmlBeanDef

2017-02-09 11:35:43 1907

原创 Spring4.3.x 浅析xml配置的解析过程(3)——使用DocumentLoader创建Document对象

准备工作Spring的XmlBeanDefinitionReader通过ResourceLoader创建了Resource对象后,又如何处理Resource对象呢?XmlBeanDefinitionReader拿到Resource对象后,会调用它的loadBeanDefinitions(Resource resource)方法,下面我们就根据这个方法为入口来探讨这个问题,见下面的代码。 pub

2017-02-08 12:03:48 2283

原创 Spring4.3.x 浅析xml配置的解析过程(2)——使用ResourceLoader创建Resource对象

概述在走进XmlBeanDefinitionReader中已经讲过XmlBeanDefinitionReader把xml配置信息转换成一个一个的BeanDefinition对象的大致过程,在这个过程中还有几个细节没有讲到,这一篇,就来探讨其中一个细节——ResourceLoader如何根据指定的location生成Resource对象。下面我们从XmlBeanDefinitionReader 使用x

2017-02-08 12:02:41 2714

原创 Spring4.3.x 浅析xml配置的解析过程(1)——使用XmlBeanDefinitionReader解析xml配置

概述Spring默认的BeanFactory是DefaultListableBeanFactory类,spring创建DefaultListableBeanFactory对象后,会把配置信息转换成一个一个的BeanDefinition对象,并把这些BeanDefinition对象注册到DefaultListableBeanFactory对象中,以供bean工厂创建bean实例。BeanDefinit

2017-02-08 12:00:34 5765

原创 Spring4.3.x 容器在web应用中的初始化过程

概述Spring在web应用中的默认容器类为XmlWebApplicationContext,这个容器类通过xml文件获取所有的配置信息。它的继承结构如下图,(点此查看大图) 在web应用中,不管是ContextLoaderListener,还是DispatcherServlet初始化的时候,都是以XmlWebApplicationContext为默认容器。在下面的研究中,我将以ContextLo

2017-02-08 11:56:39 2977

原创 Spring4.3.x 容器的刷新过程

概述Spring容器体系的继承结构图如下。从图中可以看出抽象类AbstractApplicationContext是所有容器类的父类。AbstractApplicationContext实现了它继承的所有接口方法,并定义了三个用于管理BeanFactory对象的抽象方法,如下 //--------------------------------------------

2017-02-08 11:52:22 1412 1

原创 微信公众号开发使用测试号不能测试支付接口的解决方案

概述大家很清楚,在测试环境中公众号的app id是绝对不能和生产环境的app id相同!!!如果这个问题都不清楚的就应该面壁去。。。通常在测试环境上使用的的app id有两种,分别如下。 (1)公众号内提供的测试号 (2)另外一个公众号 对于测试环境使用另一个公众号,不存在不能测试支付的问题,主要这个公众号必须开通拥有权限。虽然有点浪费资源,但这方式最最简单直接,我们可以放开

2017-01-16 16:31:38 42998 6

原创 SQL优化

原因查询速度慢的原因很多,常见如下几种: 1. 没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2. 没有创建计算列导致查询不优化。 3. 查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 4. 返回了不必要的行和列解决方案可以通过如下方法来优化查询 表更新: 1. Update 语句,如果只更改1、2个字段,不要Upda

2016-09-30 08:05:37 225

空空如也

空空如也

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

TA关注的人

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