04 2017 档案
摘要:前言 我们在开发中常遇到一种场景,Bean里面有一些参数是比较固定的,这种时候通常会采用配置的方式,将这些参数配置在.properties文件中,然后在Bean实例化的时候通过Spring将这些.properties文件中配置的参数使用占位符"${...}"替换的方式读入并设置到Bean的相应参数中
阅读全文
摘要:AspectJAwareAdvisorAutoProxyCreator及为Bean生成代理时机分析 上篇文章说了,org.springframework.aop.aspectj.autoproxy.AspectJAwareAdvisorAutoProxyCreator这个类是Spring提供给开发者
阅读全文
摘要:前言 前面写了六篇文章详细地分析了Spring Bean加载流程,这部分完了之后就要进入一个比较困难的部分了,就是AOP的实现原理分析。为了探究AOP实现原理,首先定义几个类,一个Dao接口: Dao接口的实现类DaoImpl: 定义一个TimeHandler,用于方法调用前后打印时间,在AOP中,
阅读全文
摘要:前言 Spring配置文件读取流程本来是和http://www.cnblogs.com/xrq730/p/6285358.html一文放在一起的,这两天在看Spring自定义标签的时候,感觉对Spring配置文件读取流程还是研究得不够,因此将Spring配置文件读取流程部分从之前的文章拆出来单独成为
阅读全文
摘要:原型Bean加载过程 之前的文章,分析了非懒加载的单例Bean整个加载过程,除了非懒加载的单例Bean之外,Spring中还有一种Bean就是原型(Prototype)的Bean,看一下定义方式: 原型Bean加载流程总得来说和单例Bean差不多,看一下不同之处,在AbstractBeanFacto
阅读全文
摘要:为什么Spring要支持Autowire(自动装配) 先写几个类,首先定义一个Animal接口表示动物: 写一个Animal接口的实现Tiger类: 写一个动物园类Zoo,持有Animal接口,表示动物园中有动物: 配置一下spring文件,由于这个功能研究的是Autowire,因此我命名为auto
阅读全文
摘要:前言 之前两篇文章【Spring源码分析】非懒加载的单例Bean初始化过程(上篇)和【Spring源码分析】非懒加载的单例Bean初始化过程(下篇)比较详细地分析了非懒加载的单例Bean的初始化过程,整个流程始于AbstractApplicationContext的refresh()方法: 之前重点
阅读全文
摘要:问题描述 业务有一个需求,我把问题描述一下: 不知道这个问题有没有说清楚,没说清楚没关系,写一段测试代码: 简单说就是,传入一个IP,尽量构建一个全局唯一的字符串(这么做的原因是,如果字符串的唯一性不强,比方说锁的"192.168.1.1",如果另外一段业务代码也是锁的这个字符串"192.168.1
阅读全文
摘要:前言 最近一直在看Spring源码,其实我之前一直知道AOP的基本实现原理: 如果针对接口做代理默认使用的是JDK自带的Proxy+InvocationHandler 如果针对类做代理使用的是Cglib 即使针对接口做代理,也可以将代理方式配置成走Cglib的 之后要看AOP源码了,Proxy+In
阅读全文