阅读本文请先稍微浏览下上篇文章Spring源码情操陶冶-AOP之ConfigBeanDefinitionParser解析器,本文则对aop模式的通知类作简单的分析 入口 根据前文讲解,我们知道通知类的解析主要建立在aop:aspect节点的解析上.废话少说我们直接观察ConfigBeanDefinitionParser#parseAdvice()方法 ConfigBeanDefinitionParser#parseAdvice()-解析通知类并注册到bean工厂 先奉上源码 /** * Pars…
aop-Aspect Oriented Programming,面向切面编程.根据百度百科的解释,其通过预编译方式和运行期动态代理实现程序功能的一种技术.主要目的是为了程序间的解耦,常用于日志记录.事务管理等方面. spring中常用<aop-config>来配置aop代理 AOP概念梳理 切面(Aspect) 连接点(Joinpoint) 通知(Advice) 切入点(PointCut) 目标对象 AOP代理 具体的AOP解释以及用法可详情参考专业人士写的博客>>>Spri…
本文承接前文Spring源码情操陶冶-DefaultBeanDefinitionDocumentReader#parseBeanDefinitions,特开辟出一块新地来啃啃这块有意思的骨头 自定义节点的类型 我们常用的可分为spring/springmvc两类 spring常用的节点类型 context类型 context-component-scan-扫描包内的所有class类并注册为beanDefinition到spring上下文 context-property-placeholder-…
本文承接前文Spring源码情操陶冶-自定义节点的解析,分析spring中的context:annotation-config节点如何被解析 源码概览 对BeanDefinitionParser接口的实现方法parse代码如下 @Override public BeanDefinition parse(Element element, ParserContext parserContext) { Object source = parserContext.extractSource(elemen…
承接Spring源码情操陶冶-自定义节点的解析.本节关于事务进行简单的解析 spring配置文件样例 简单的事务配置,对save/delete开头的方法加事务,get/find开头的设置为不加事务只读模式 <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="save*"…
承接前文Spring源码情操陶冶-AbstractApplicationContext#registerListeners 约定web.xml配置的contextClass为默认值XmlWebApplicationContext 直接源码AbstractRefreshableWebApplicationContext#finishBeanFactoryInitialization /** * Finish the initialization of this context's bean fac…
承接前文Spring源码情操陶冶-AbstractApplicationContext#onRefresh 约定web.xml配置的contextClass为默认值XmlWebApplicationContext 直接源码AbstractRefreshableWebApplicationContext#registerListeners /** * Add beans that implement ApplicationListener as listeners. * Doesn't affec…
承接前文Spring源码情操陶冶-AbstractApplicationContext#initApplicationEventMulticaster 约定web.xml配置的contextClass为默认值XmlWebApplicationContext 直接源码AbstractRefreshableWebApplicationContext#onRefresh /** * Initialize the theme capability. */ protected void onRefresh…
承接前文Spring源码情操陶冶-AbstractApplicationContext#initMessageSource 约定web.xml配置的contextClass为默认值XmlWebApplicationContext 瞧瞧官方注释 /** * Initialize the ApplicationEventMulticaster. * Uses SimpleApplicationEventMulticaster if none defined in the context. * @se…
承接前文Spring源码情操陶冶-AbstractApplicationContext#registerBeanPostProcessors 约定web.xml配置的contextClass为默认值XmlWebApplicationContext 瞧瞧官方注释 /** * Initialize the MessageSource. * Use parent's if none defined in this context. */ 初始化MessageSource消息源,如果beanFactor…