摘要: 一 . 概述 在前面,我们基本将AOP的基本的内容都做了介绍.现在还有一个重要的内容,就是连接点信息. 因为我们需要根据连接点对象的信息进行处理,因此连接点是AOP处理的一个核心. 二 .JoinPoint接口 在spring之中使用JoinPoint接口描述了连接点的信息. 我们首先看这个接口的结 阅读全文
posted @ 2018-05-27 23:27 最爱五仁月饼 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 一 . 概述 我们在使用AspectJ的时候定义了五种基本的增强方式. 本节就介绍一下这五种基本的增强方式. 二 ,前置增强 我们使用@Before表示前置通知,表示在连接点方法之前执行. 这个很很好理解. 三,后置通知 后置通知会在方法正常结束之后运行,当我们制定了returning之后,方法的返 阅读全文
posted @ 2018-05-27 23:10 最爱五仁月饼 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 一 . 概述 对一个切入点来说,我们是可以织入大量的通知进行增强的. 这里就出现了一个拦截器链的问题,还有一个问题就是执行顺序的问题. 二 .拦截器链 当出现一个连接点的大量通知的问题时,spring使用的是拦截器链来进行解决, 这和我们一般认为的拦截器链的运行方式时一致,但是我们在使用注解的时候并 阅读全文
posted @ 2018-05-27 22:52 最爱五仁月饼 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 一 . 概述 在前面的一节中,我们介绍了切入点表达式的书写方式. 但是一个通知后面需要加上一个切入点表达式,这样就会造成我们需要重复书写大量的切入点表达式. 因此,重用切入点表达式的需求就出现了. spring为我们提供这一实现. 二 .简单的例子 在上面,我们定义了一个方法,上面含有一个注解@Po 阅读全文
posted @ 2018-05-27 22:15 最爱五仁月饼 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 一 .概述 在上一节之中,我们看到了使用AspectJ处理AOP变得十分简单了. 其核心有两点是需要我们重点注意的: (1)切入点表达式 (2)通知增强的注解 本节,重点说一下切入点表达式的问题. 二 .切入点表达式 切入点表达式重点表示的就是通知到底应该在上面方法上面生效. 因此,切入点表达式的核 阅读全文
posted @ 2018-05-27 22:10 最爱五仁月饼 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 一 . 概述 在之前我们了解了spring生成代理对象的过程,但是整个过程的配置是十分麻烦的. 尽管spring提供了很多的解决方法,但是还是无法从根本上解决配置复杂的问题. 如,name匹配等方式(这里不去说). 而,作为业界最优秀的AOP框架,Aspectj的实现却相当的简单,因此spring引 阅读全文
posted @ 2018-05-27 21:53 最爱五仁月饼 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 一 . 概述 在前一节之中,我们使用ProxyFactory创建了代理对象,后面也提到,spring支持配置式的方式创建代理对象. 配置的关键就是ProxyFactoryBean. 二 .ProxyFactoryBean的结构 我们看到这个类实现了FactoryBean接口,那么我们就知道这个实现类 阅读全文
posted @ 2018-05-27 21:00 最爱五仁月饼 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 一. 概述 之前我们介绍了AOP的实现依赖于动态代理,再深一点说,就是创建出一个代理对象才能完成AOP的实现. 因此,我们就能知道了,AOP的核心首要就是创建出动态代理对象. 二 . 前置说明 AOP在spring之中的表现形式是相当多的,如之前的IOC形式,Aspectj的风格,各种xml的形式, 阅读全文
posted @ 2018-05-27 20:27 最爱五仁月饼 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 一 . 概述 我们知道AOP底层使用的就是动态代理,在JDK中支持接口级别的动态代理, 这里我们进行一下演示,目的是方面后面看源代码时变得简单一些. 二 . 核心接口 上面的接口就是动态代理的核心接口,我们可以理解为一个方法级别的拦截. 其中的参数,proxy表述代理对象,method表示被拦截的方 阅读全文
posted @ 2018-05-27 14:48 最爱五仁月饼 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 一 . 概述 AOP给人的感觉很强大,但是很难用.原因就是大多数人只是会配置一下,而不知道是怎么实现的, 对于一个自己都没有把握的技能,自然在应用的过程中不会首先选择. 自己也是一样,本次就自己家整理一下AOP部分的知识,比较系统和底层的的梳理一下. 二 .AOP 老生常谈的面想想切面编程,其实质就 阅读全文
posted @ 2018-05-27 14:28 最爱五仁月饼 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 一 . 概述 在这里我们不去说事件机制的好处还有一个基础概念性的问题,我们专注于spring的容器事件的问题. 使用事件机制,我们可以完成异步的方法调用,另外使用线程的机制,我们还可以获得并发的好处. 二 .容器事件的开始 我们看一下spring源码之中是如何发布容器事件的. 在refresh()方 阅读全文
posted @ 2018-05-27 10:19 最爱五仁月饼 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 一 . 概述 在之前我们说过@Conditional注解可以帮助我们实现条件的Bean的注册,但有时候却不是很方便. 如我们在生产和测试环境是不同的,因此我们需要一个能够根据环境注入Bean的方式. @Profile注解就能帮助我们实现这个功能. 二 . 测试 配置类: 我们在test环境下会注入一 阅读全文
posted @ 2018-05-27 00:24 最爱五仁月饼 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 一 .概述 在前面我们说到,我们获取属性值的最大途径就是从外部的配置文件之中获取. spring为我们提供了@PropertySoruce注解完成属性文件的属性值的获取. 二 .测试 [1] 创建一个配置文件 [2]配置类 我们使用${}的方式将配置文件的属性注入到配置类之中. 测试类: 就是那么简 阅读全文
posted @ 2018-05-27 00:23 最爱五仁月饼 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 一 . 概述 在spring之中,对属性进行赋值是一个很常用的行为,我们常常将这些属性配置到我们的配置文件之中. 首先,我们完成对组件的属性的赋值. 二 . 测试 我们使用@Value注解注入了一个属性值. 测试类: 其实,在@Value注解中常用的方式有三种: [1]常量 [2]spel [3]运 阅读全文
posted @ 2018-05-27 00:22 最爱五仁月饼 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 一 .概述 Bean的生命周期就是指,Bean的创建,初始化,销毁的整个过程. spring帮助我们实现整个过程,但是提供了很多的回调接口,我们 可以自己定义这些方法. 二 . 使用 init-method 来实现. 组件: 配置类: 我们使用@Bean注解的使用完成指定初始化和销毁方法. 测试类: 阅读全文
posted @ 2018-05-27 00:20 最爱五仁月饼 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 一 . 概述 在之前我们使用@Bean或者组件扫描器加上组件标记注解向容器中注册组件. 在spring之中,也提供了另外一种方式帮助我们注册组件. 这个组件就是@Import的方式, 使用这种方式的原因就是我们希望在一定程度上可以控制如何注入Bean. 二 .注解的测试 组件类: 配置类: 测试类: 阅读全文
posted @ 2018-05-27 00:18 最爱五仁月饼 阅读(501) 评论(0) 推荐(0) 编辑
摘要: 一 .概述 在spring之中提供@Conditional注解完成条件注入. 我们可以实现特定的接口,完成配置类可以根据条件进行Bean的创建. 二 .测试 配置类: 两个条件类: 只有当当前的操作系统为windows时,才会注入该bean. 测试: 结果返回为window,说明在当前的操作系统中只 阅读全文
posted @ 2018-05-27 00:17 最爱五仁月饼 阅读(674) 评论(0) 推荐(0) 编辑
摘要: 一 .概述 我们知道单实例Bean在spring的IOC容器之中,单实例Bean会在容器启动之后进行创建. 我们可以使用@Lazy完成懒加载,这样可以在初次获取Bean的时候才会创建Bean. 二 .测试 测试: 我们创建完IOC容器之后,线程休眠3秒,然后我们从IOC中获取对象,我们发现此时 才真 阅读全文
posted @ 2018-05-27 00:16 最爱五仁月饼 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 一 .概述 在spring之中常用的Bean的生命周期常见的有单例模型和多例模型. 我们可以使用@Scope完成声明. 二 .@Scope [1]创建组件 [2]创建配置类 [3] 测试类 查看运行结果: 我们通过结果就知道Bean的Scope了. 三 . scope的默认情况 在IOC容器之中(A 阅读全文
posted @ 2018-05-27 00:15 最爱五仁月饼 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 一 .概述 在之前我们使用spring时,最常用的就是组件扫描器配合Bean标记注解整体进行Bean的注册. xml形式: 我们配置基础包,spring会帮助我们将基础包下所有的类进行扫描,一旦发现有类被标记上了一下四个注解就会进行注册. [1]@Controller [2]@Service [3] 阅读全文
posted @ 2018-05-27 00:13 最爱五仁月饼 阅读(198) 评论(0) 推荐(0) 编辑