Spring
ONROAD0612
不问前程何如,但愿落幕无悔
展开
-
AspectJ
本博客是总结《Spring in action》的学习。1、AspectJ常用注解及意义@After:通知方法会在目标方法返回或者抛出异常后调用。@AfterReturning:通知方法在目标方法返回后调用。@AfterThrowing :通知方法在目标方法抛出异常后调用。@Around:通知方法将会将目标方法封装起来。@Before : 通知方法将会在目标方法调用之前执行原创 2017-03-19 15:37:55 · 342 阅读 · 0 评论 -
Spring配置文件解析(三)BeanDefinitionDocumentReader源码分析
1 概述前面我们分析了BeanDefinitionReader的源码(Spring配置文件解析(二)BeanDefinitionReader源码分析 ),我们知道BeanDefinitionReader的作用其实就是将Spring的Bean定义的XML文件最终解析成Document对象,然后将这个对象交给BeanDefinitionDocumentReader来完成最终的XML文档的解析和Be...原创 2018-12-21 17:29:29 · 323 阅读 · 0 评论 -
Spring配置文件解析(二)BeanDefinitionReader源码分析
1 概述这一篇文章的作用主要是接着上篇文章(Spring配置文件解析(一)ClassPathXmlApplicationContext源码分析)继续分析在Spring中配置文件的加载和解析,但是在分析之前,我们有必要对BeanDefinitionReader家族进行一个简单地介绍。这个BeanDefinitionReader接口是bean定义读取的基础接口,它的函数根据不同的资源获取方式进行...原创 2018-12-21 11:43:55 · 354 阅读 · 0 评论 -
Spring源码之IOC(二)BeanDefinition派生类
1 概述通过前面的文章,我们对BeanDefinition接口有个深入的认识,我们知道BeanDefinition提供了bean的特性的封装,可以通过BeanDefinition对Bean的属性访问和修改,获取是否是抽象类等属性。针对更多的功能,我们就可以通过使用BeanDefinition的派生类来获取。2 UML类图我们来看一下BeanDefinition有哪些派生类,以及这些派生...原创 2018-12-10 15:33:03 · 467 阅读 · 0 评论 -
Spring配置文件解析(一)ClassPathXmlApplicationContext源码分析
1 概述针对前面的SpringIOC的源码分析,我们看见了在整个Spring容器初始化的时候,配置文件的解析是相当重要的,所以从这篇文章开始,我们将对配置文件的解析进行深入的分析。这里我们仅仅拿ClassPathXmlApplicationContext类来进行分析,因为FileSystemXmlApplicationContext的配置文件解析的过程和ClassPathXmlApplica...原创 2018-12-20 16:12:44 · 914 阅读 · 1 评论 -
Spring源码之IOC(四)BeanFactory派生类
1 概述从前面的文章(Spring源码之IOC(三)BeanFactory源码分析)我们学习到BeanFactory提供了Spring bean容器的基础入口,也就是我们可以通过BeanFactory来获取到bean。而其子类通过扩展BeanFactory来提供了更加丰富的功能,接下来我们就来看一看子类到底提供了哪些功能。2 UML类图3 派生类详解3.1 Hierarchical...原创 2018-12-14 10:02:54 · 277 阅读 · 0 评论 -
Spring源码之IOC(三)BeanFactory源码分析
1 概述这是进入Spring bean容器的基础接口,她的子类(例如:ListableBeanFactory、ConfigurableBeanFactory)还提供了更多个用处,我们后面会对其子类进行分析。这个接口的实现类拥有beanDefinition对象,每个beanDefinition对象都和一个唯一的name对应,并将这种对应关系用Map保存起来。通过这个BeanFactory我们...原创 2018-12-14 09:36:41 · 273 阅读 · 0 评论 -
Spring源码之IOC(五)ApplicationContext源码分析
1 概述ApplicationContext即应用上下文,它是建立在BeanFactory基础之上的 ApplicationContext有两个主要的实现类:ClassPathXmlApplicationContext:默认从类路径加载配置文件,还有FileSystemXmlApplicationContext:默认从文件系统中装载配置文件,通常我们使用的比较多的是ClassPathXmlA...原创 2018-12-19 17:09:43 · 401 阅读 · 0 评论 -
Spring源码之IOC(一)BeanDefinition源码解析
1 概述Bean的定义主要是由BeanDefinition来描述的。BeanDefinition是Spring中包装bean的数据结构,她描述了一个bean实例属性、构造参数。当然针对她的具体实现类提供了更加丰富的功能。这仅仅是一个基本的接口,这个接口的主要目的是允许修改和获取bean的属性和元数据。2 类关系针对BeanDefinition,我们首先来看一下UML类图。从上图...原创 2018-12-04 19:55:42 · 402 阅读 · 0 评论 -
Spring使用系列--JPA二级缓存的使用
本示例是基于maven的项目(1)需要添加的maven依赖 <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-jpa</artifactId> ...原创 2017-05-12 15:47:30 · 755 阅读 · 0 评论 -
Spring单元测试
1、单元测试简介软件工程将软件测试分为:单元测试集成测试功能测试系统测试开发人员职责:单元测试,集成测试(白盒测试)测试人员职责:功能测试,系统测试(黑盒测试) 单元测试单元测试是开发人员编写的一小段代码,用于检验目标代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试用来判断某个特定条件或特定场景下的某个特定方法的行为。 集成测试集成...原创 2017-02-21 22:49:05 · 316 阅读 · 0 评论 -
CGLIB和JDK动态代理的区别
一、原理区别Java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP 2、如果目标对象实现了接口,可以强制使用CGLIB实现AOP 3、如果目标对象没有实现了接口...转载 2018-04-11 21:07:17 · 209 阅读 · 0 评论 -
Spring源码之IOC(六)IOC容器初始化和Bean定义加载分析
控制反转(IOC):将对象的创建和依赖关系交给容器,我们需要什么就去容器取。举一个比较简单的例子,如果我们拥有一个工厂,我们需要什么的时候我们就直接告诉工厂,而不需要我们去自己制造。针对对象的创建我们都交给容器了,当我们需要某个对象的时候就采用注入的方式获得对象,所以这就是控制反转和依赖注入。 首先我们来关注一个接口,源码如下:package org.springframe...原创 2018-03-11 15:55:37 · 429 阅读 · 0 评论 -
Spring --单元测试及使用logback打印测试结果
(1)将logback集成到junit中package com.liutao.utils;import ch.qos.logback.classic.LoggerContext;import ch.qos.logback.classic.joran.JoranConfigurator;import ch.qos.logback.core.joran.spi.JoranException原创 2017-05-12 17:33:17 · 2087 阅读 · 0 评论 -
Spring配置文件解析(四)BeanDefinitionParserDelegate源码分析
1 概述通过对BeanDefinitioDocumentReader源码(Spring配置文件解析(三)BeanDefinitionDocumentReader源码分析)的分析,我们知道BeanDefinitioDocumentReader的作用就是将Document对象中获取到Element对象,最终交给BeanDefinitionParserDelegate来完成BeanDefinitio...原创 2018-12-29 17:00:33 · 329 阅读 · 0 评论