spring
hao_yunfeng
这个作者很懒,什么都没留下…
展开
-
Spring AOP不拦截从对象内部调用的方法原因
拦截器的实现原理很简单,就是动态代理,实现AOP机制。当外部调用被拦截bean的拦截方法时,可以选择在拦截之前或者之后等条件执行拦截方法之外的逻辑,比如特殊权限验证,参数修正等操作。 但是最近在项目中要在一个事务中跨数据源进行操作。数据库跨源就不在这里说了,可以自行百度。 这里出现的问题就是,如果我们要拦截某个类的多个方法,且在该类的方法中使用this调用要拦截的方法时会导致拦转载 2016-04-29 10:27:30 · 456 阅读 · 0 评论 -
Spring源码-AOP(七)-整合AspectJ
Spring AOP的实现已经臻于非常完善,而通过与AspectJ的整合使得AOP的使用简单且灵活。不论是XML还是注解,都实现了非侵入式的控制。而基于自动代理的基础上,整合的AspectJ也通过BeanPostProcessor扩展的方式实现细粒度的切面控制。XML方式通过以aop:config标签实现配置,注解方式则通过@Aspect声明切面类。两种方式底层的实现殊途同归,都是基于自动代理的基...转载 2018-09-02 00:32:37 · 308 阅读 · 0 评论 -
Spring源码-AOP(六)-自动代理与DefaultAdvisorAutoProxyCreator
框架存在的意义,简单来说就是将复杂的底层实现封装起来,并提供便捷的外部接口供用户使用。对于Spring AOP而言,不论是ProxyFactory还是ProxyFactoryBean,都不能满足实际业务中复杂的应用,用户不可能对每个使用AOP代理的类进行配置。这时通过一定规则自动发现和代理自然应运而生。在spring-aop工程的autoproxy目录构成了Spring AOP自动代理的基础,Ab...转载 2018-09-02 00:31:57 · 1652 阅读 · 0 评论 -
Spring源码-AOP(五)-ProxyFactoryBean
上一章中我们分析了ProxyFactory,它是Spring AOP核心的底层实现。然而硬编码的方式还是过于繁琐且不易使用,本章我们将讨论ProxyFactoryBean,它结合了ProxyFactory和Ioc中的FactoryBean扩展,使得可以通过XML配置的方式来实现Spring AOP。关于Spring AOP创建代理的具体实现本章将不会再赘述,而是主要讨论FactoryBean扩展结...转载 2018-09-02 00:31:21 · 459 阅读 · 0 评论 -
Spring源码-AOP(四)-ProxyFactory
本章来解析最基础的ProxyFactory的源码。有人会说,现在都没人用编码的方式来写AOP了,解析它有什么用呢?我想从两点强调下:不论是注解还是XML配置,其底层的实现还是通过编码的方式来组建相互之间的关系。可以说ProxyFactory的基本实现就是Spring AOP抛开一切配置后真正核心的东西。 我理解中优秀的框架都是不断演进的,逐渐演化从而形成强大的功能。从理解简单的实现逐步到了解...转载 2018-09-02 00:30:45 · 325 阅读 · 0 评论 -
Spring源码-AOP(三)-Spring AOP的四种实现
Spring AOP的实现从Spring自身的实现到集成AspectJ的实现,从硬编码到xml配置再到注解的方式,都是随着Spring的更新而不断演进。这一章我将介绍多种不同的实现方式,既为Spring AOP的实现及配置做一个粗略的指南,同时为后续源码的解析做一个引子。1.硬编码(ProxyFactory)以之前的浏览器举例,有一个Browser接口public interface...转载 2018-09-02 00:28:11 · 817 阅读 · 0 评论 -
Spring源码-AOP(二)-AOP概念
1.AOP概念AOP中文翻译为面向方面编程或面向切面编程,维基百科对它的解释是AOP指一种程序设计范型,该范型以一种称为aspect(切面)的语言构造为基础,切面是一种新的模块化机制,用来描述分散在对象、类或函数中的横切关注点(crosscutting concern)。谈到模块化机制,自然会想到OOP(面向对象编程)。OOP也是一种模块化的方法,它将数据和处理方法组合在一起,摆脱...转载 2018-08-28 01:11:21 · 136 阅读 · 0 评论 -
Spring源码-AOP(一)-代理模式
在我们的项目中,往往会出现许多业务或功能存在相同或相似的操作,这些操作与具体的业务逻辑相关性不大,比如记录关键的操作日志,或者更新数据库的事务控制等。因为这些操作散落在众多的不相关的业务间,不能通过继承的体系去管理,而通过工具类的方法也会显得代码的繁琐以及一些控制粒度的细分问题,因而就出现了AOP(Aspect-Oriented Programming),即面向切面编程。在这一节中,我不想直接谈A...转载 2018-08-28 01:10:43 · 186 阅读 · 0 评论 -
Content-Type为null报 'mediatype' must not be empty错
seehttps://jira.spring.io/browse/SPR-12173spring bugContent-Type为null时会报错,为空不会报错spring自3.2.12已修复该bug解决办法:1/Content-Type 赋值或者给空字符串2/升级spring原创 2016-05-18 10:40:49 · 6432 阅读 · 0 评论 -
Spring 框架的设计理念与设计模式分析
Spring 作为现在最优秀的框架之一,已被广泛的使用,并且有很多对其分析的文章。本文将从另外一个视角试图剖析出 Spring 框架的作者设计 Spring 框架的骨骼架构的设计理念,有那几个核心组件?为什么需要这些组件?它们又是如何结合在一起构成 Spring 的骨骼架构? Spring 的 AOP 特性又是如何利用这些基础的骨骼架构来工作的? Spring 中又使用了那些设计模式来完成它的这种转载 2016-05-16 11:25:19 · 306 阅读 · 0 评论 -
Spring IOC 容器源码分析
http://www.importnew.com/27469.html Spring 最重要的概念是 IOC 和 AOP,本篇文章其实就是要带领大家来分析下 Spring 的 IOC 容器。既然大家平时都要用到 Spring,怎么可以不好好了解 Spring 呢?阅读本文并不能让你成为 Spring 专家,不过一定有助于大家理解 Spring 的很多概念,帮助大家排查应用中和 Spring...转载 2018-09-08 11:22:30 · 173 阅读 · 0 评论