自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

YourBatman

也许当我老了,也一样写代码。不为别的,只为爱好。公众号搜索:BAT的乌托邦...

原创 【小家Spring】源码分析Spring的事务拦截器:TransactionInterceptor和事务管理器:PlatformTransactionManager

前言 接着上一篇博文: 【小家Spring】从基于@Transactional全注解方式的声明式事务入手,彻底掌握Spring事务管理的原理 TransactionInterceptor作为它的增强子,扮演着自动处理Spring事务的核心角色。上篇博文篇幅有限,又为了突出TransactionIn...

2019-04-29 21:19:02 3225 2

原创 【小家Spring】从基于@Transactional全注解方式的声明式事务入手,彻底掌握Spring事务管理的原理

前言 前篇文章: 【小家Spring】Spring-jdbc的使用以及Spring事务管理的8种方式介绍(声明式事务+编程式事务) 介绍了Spring事务的众多使用方式,其中讲到全注解@Transactional方式的时候一笔带过了,那么本文就以当下最流行的Spring事务的使用方式:@Trans...

2019-04-29 11:20:06 1638 3

原创 【小家Spring】Spring事务相关的基础类打点(spring-jdbc和spring-tx两个jar),着重讲解AnnotationTransactionAttributeSource

前言 本篇博文定位为为事务相关的其余博文的工具博文,属于Spring事务相关的基础类的打点、扫盲篇。 因为Spring的事务属于它非常非常重要的一块,因此内部的一些核心类、核心API有必要做个系统的了解,才能更好的了解到其深意。 TransactionAttribute 这个接口是在Transac...

2019-04-28 20:35:50 843 0

原创 【小家Spring】Spring-jdbc的使用以及Spring事务管理的8种方式介绍(声明式事务+编程式事务)

前言 前面已经讲述了Spring Aop的原理以及源码分析~ 若对Spring AOP还不是太了解的话,强烈建议出门左拐,先掌握AOP相关内容,因为Spring的事务管理就是基于Spring AOP实现的 本文主要讲解Spring-JDBC的使用以及它对事务的管理。 主要分为两大块: Spr...

2019-04-27 21:16:54 851 0

原创 【小家Java】Java优先队列PriorityQueue、PriorityBlockingQueue使用示例

前言 我们知道队列是遵循先进先出(First-In-First-Out)模式的,但有些时候需要在队列中基于优先级处理对象。 为什么优先级队列,其实很好理解。比如银行的VIP客户、各大机场的VIP客户的优先登机等,都是优先级队列的体现。而正常排队的都属于普通队列~ PriorityQueue Pri...

2019-04-26 18:27:49 375 0

原创 【小家Spring】Spring的单例Bean定注册中心SingletonBeanRegistry详解

前言 本文着眼于Spring的Bean中最重要的类型:单例Bean。研究它的注册中心:SingletonBeanRegistry SingletonBeanRegistry 此接口是针对Spring中的单例Bean设计的。提供了统一访问单例Bean的功能。比如我们熟悉的接口Configurable...

2019-04-26 15:09:10 834 0

原创 【小家Spring】Spring的Bean定义注册中心BeanDefinitionRegistry详解

前言 Spring Framework最重要的一个概念就是Bean,而Spring Bean定义是需要扫描、注册来实现统一的管理的。 前面已经介绍了Spring容器的启动过程、分类、Bean定义信息的详解等。但是发现有读者留言问了Bean定义注册中心得一些问题,因此本文主要是讲解BeanDefin...

2019-04-25 18:33:54 6579 0

原创 【小家Spring】资源访问利器---Spring使用ResourceLoader接口便捷的获取资源(ResourcePatternResolver、ResourceLoaderAware)

前言 关于Spring Framework中资源的访问,上篇已经讲解了org.springframework.core.io.Resource接口,它有非常多的实现类,来针对不同的场景去规范统一的资源获取方式。 【小家Spring】资源访问利器—Spring提供的Resource接口以及它的常用子...

2019-04-25 15:49:26 991 0

原创 【小家Spring】资源访问利器---Spring提供的Resource接口以及它的常用子类源码分析

前言 资源是一个抽象的概念,什么是资源?我们已知Spring中有很多xml配置文件,同时还可能自建各种properties资源文件,还有可能进行网络交互,收发各种文件、二进制流等。 资源粗略的可以分为(这里以Spring的分类为例): URL资源 File资源 ClassPath相关资源 服务器...

2019-04-23 20:25:52 538 0

原创 【小家Spring】Spring任务调度@Scheduled的使用以及原理、源码分析(@EnableScheduling)

前言 【小家java】Java定时任务ScheduledThreadPoolExecutor详解以及与Timer、TimerTask的区别(执行指定次数停止任务)

2019-04-22 21:15:17 954 2

原创 【小家Spring】Spring任务调度核心接口(类)之---TaskScheduler(任务调度器)、Trigger(触发器)、ScheduledTask(调度任务)详解

前言 先推荐阅读此篇: 【小家java】Java定时任务ScheduledThreadPoolExecutor详解以及与Timer、TimerTask的区别(执行指定次数停止任务) 某些时候我们可能需要在某些固定的时间或者是间隔一定的时间连续执行一些任务,如每天凌晨自动跑一些批次/心跳检测等。Sp...

2019-04-22 18:06:01 2542 0

原创 【小家Spring】Spring异步处理@Async的使用以及原理、源码分析(@EnableAsync)

前言 在开发过程中,我们会遇到很多使用线程池的业务场景,例如定时任务使用的就是ScheduledThreadPoolExecutor。大多数使用线程池的场景,就是会将一些可以进行异步操作的业务放在线程池中去完成。 例如在生成订单的时候给用户发送短信,生成订单的结果不应该被发送短信的成功与否所左右,...

2019-04-21 23:22:35 4183 7

原创 【小家Spring】Sping AOP中使用到的那些工具类盘点:AopUtils、AopConfigUtils、AspectJAopUtils 、AopProxyUtils、AopContext

前言 Spring AOP框架的代码结构组织得不可为不好,良好的面向对象的编程思想,其中很有一部分得益于它对代码的结构的把控。良好的封装、分层、隔离。而在其中起到重要作用的,便是本文要盘点的一些工具类。 Spring框架的工具类,其实它是分为内部工具类和外部工具类的。如果是外部工具类,那是可以给调...

2019-04-20 22:48:07 1057 0

原创 【小家Spring】Spring Framework提供的实用纯Java工具类大合集(二)

前言 接着上一篇 【小家Spring】Spring Framework提供的实用纯Java工具类大合集(一) 继续来介绍Spring提供的好用的一些工具类。 Assert 这是Spring提供给我们的断言工具,是以抛异常的方式来处理的。 若你是自己的书写框架的时候,可以使用它的,而不用自己各种去i...

2019-04-19 18:33:54 508 0

原创 【小家Java】JDK动态代理技术,你真学会了吗?(Proxy、ProxyClassFactory)

前言 java界有个熟语:反射是你通向高级的敲门砖,而动态代理是你站稳高级的基础。 动态代理技术,相信我们都并不陌生。特别是在Spring框架内,大量的使用到了反射以及动态代理技术。但是如果我们只是停留在平时的运用阶段,此篇文章你其实是可以跳过的,因为反射、代理技术一般都只有在框架设计中才会使用到...

2019-04-17 21:06:08 1213 0

原创 【小家Spring】面向切面编程之---Spring AOP的原理讲解以及源码分析(Cannot find current proxy: Set 'exposeProxy' property on )

相关博文 【小家java】POP(面向过程编程)、OOP(面向对象编程)、AOP(面向切面编程)三种编程思想的区别和联系 【小家Spring】Spring AOP的多种使用方式以及神一样的AspectJ-AOP使用介绍 【小家Spring】Spring AOP中@Pointcut切入点表达式最全面...

2019-04-17 14:20:34 1293 2

原创 【小家Spring】Spring AOP的核心类:AbstractAdvisorAutoProxy自动代理创建器深度剖析(AnnotationAwareAspectJAutoProxyCreator)

前言 上篇博文:【小家Spring】面向切面编程之—Spring AOP的原理讲解以及源码分析(Cannot find current proxy: Set ‘exposeProxy’ property on ) 已经刚刚结合实例,介绍了Spring AOP的过程原理以及对源码进行了逐步分析~ 但...

2019-04-16 21:39:52 2727 8

原创 【小家Spring】Spring AOP各个组件概述与总结【Pointcut、Advice、Advisor、Advised、TargetSource、AdvisorChainFactory...】

前言 Spring AOP作为整个Spring体系最最重要的分支之一,若干技术都是基于它的(比如事务、异步、缓存等) 前面通过好几篇文章,已经把Spring AOP内部的的运行流程等基本都叙述了一遍,但是通过小伙伴们反馈,还是晕头转向的:类太多了,且很多概念感觉很模糊,不知道咋用的。 因此本文就站...

2019-04-15 18:18:04 1475 5

原创 【小家Spring】Spring AOP之Advisor、PointcutAdvisor、IntroductionAdvisor、IntroductionInterceptor(引介增强)

前言 上篇文章:【小家Spring】Spring AOP核心类Pointcut解析,对PointcutExpression切点表达式解析原理分析(以AspectJExpressionPointcut为例) 讲到了很多的Pointcut,以及各自的使用场景。 而Advisor是Pointcut以及A...

2019-04-15 14:21:31 3357 3

原创 【小家Spring】Spring AOP核心类Pointcut解析,对PointcutExpression切点表达式解析原理分析(以AspectJExpressionPointcut为例)

前言 首先需要说明一点:Pointcut接口有两个。 一个是:org.aspectj.lang.reflect.Pointcut,它是aspectj内部使用的。它只有一个实现类PointcutImpl。是它内部的抽象 另一个是:org.springframework.aop.Pointcut,这是...

2019-04-13 17:49:13 1698 0

原创 【小家Spring】探讨注解驱动Spring应用的机制,详解ServiceLoader、SpringFactoriesLoader的使用(以JDBC、spring.factories为例介绍SPI)

前言 在之前的一篇文章【小家Spring】Spring注解驱动开发—Servlet 3.0整合Spring MVC(不使用web.xml部署描述符,使用ServletContainerInitializer) 它介绍了基于注解驱动的servlet容器的启动。今天也是回头突然看到了自己写的这篇文章,...

2019-04-12 18:46:40 1132 2

原创 【小家Spring】Spring AOP原理使用的基础类打点(AopInfrastructureBean、ProxyProcessorSupport、Advised、AjType)

前言 Spring AOP是整个Spring框架中最重要的内容之一。为了更好的深入查看它的原理,这篇文章主要是把它在关键位置使用到的一些常用类打点、解释一波,有助于我们去看源代码的时候变得更加的轻松 Spring AOP相关类、组件内容庞大。此处只会介绍一些最为常用的概念进行分析~~~ Sprin...

2019-04-09 18:50:35 2267 2

原创 【小家Spring】面向切面编程Spring AOP创建代理的方式:ProxyFactoryBean、ProxyFactory、AspectJProxyFactory(JDK Proxy和CGLIB)

前言 Spring AOP是大家都非常熟悉的一个概念,在Spring家族体系中扮演着举足轻重的作用。 然后Spring作为一个优秀的框架,提供了多种应用层面上代理的方式:ProxyFactoryBean、ProxyFactory、AspectJProxyFactory 注意:此处这里指的是Spr...

2019-04-09 18:28:42 2051 2

原创 【小家Spring】探索Spring AOP中aopalliance的Joinpoint、MethodInvocation、Interceptor、MethodInterceptor...

前言 在这篇博文:【小家Spring】详解Spring AOP中底层代理模式之JdkDynamicAopProxy和CglibAopProxy(ObjenesisCglibAopProxy)的源码分析 我们已经能够知道了,代理对象创建好后,其实最终的拦截工作都是交给了MethodInvocatio...

2019-04-09 16:41:08 4044 2

原创 【小家Spring】详解Spring AOP的底层代理JdkDynamicAopProxy和ObjenesisCglibAopProxy的源码分析(介绍CGLIB使用中的坑)

前言 在前面的博文我们了解到,Spring所有的代理AopProxy的创建最后都是ProxyCreatorSupport#createAopProxy这个方法,而这个方法如下: protected final synchronized AopProxy createAopProxy() { ...

2019-04-02 16:13:53 2493 7

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