spring源码阅读(一)开宗明义
时间:2010-07-18 来源:e-soft
最近断断续续阅读spring的IOC,和AOP源码,有感如下:
1:IOC。IOC大概过程如下;读取xml文件,一个个bean封装成BeanDefinition(具体涉及xml解析,用doc),然后放入一个map中。key是
bean定义的id,value是BeanDefinition。然后当BeanFactory调用getBean方法时候,从map找出BeanDefinition,然后用jdk的反射机制
或者cglib方式生成bean,如果类中还要注入其他bean,迭代调用getBean生成其他bean,最后返回一个实例Bean。
2:AOP。按我的的理解,aop是基本上就是一个代理,调用指定方法之前类似拦截器的调用一个个指定的MethodBeforeAdvice,调用方法
之后调用AfterReturningAdvice,如果有异常调用ThrowAdvice(这个比上面两个复杂)。这个用处最大的我看就是事务控制了吧,权限
拦截也可以这样做,哈哈
感触;其实spring(基本上用到反射,当然设计模式很多,核心的bean),hibernate(就是封装了jdbc,里面重要的就是entity,表和entity对应),
struts1.x(就是封装了servlet,记不记得web.xml里面那个actionservlet,哇哈哈),刚开始学习的时候感觉框架很神秘,现在感觉还是基础重要啊,
大的框架都是一步步从基础累加出来的。
1:IOC。IOC大概过程如下;读取xml文件,一个个bean封装成BeanDefinition(具体涉及xml解析,用doc),然后放入一个map中。key是
bean定义的id,value是BeanDefinition。然后当BeanFactory调用getBean方法时候,从map找出BeanDefinition,然后用jdk的反射机制
或者cglib方式生成bean,如果类中还要注入其他bean,迭代调用getBean生成其他bean,最后返回一个实例Bean。
2:AOP。按我的的理解,aop是基本上就是一个代理,调用指定方法之前类似拦截器的调用一个个指定的MethodBeforeAdvice,调用方法
之后调用AfterReturningAdvice,如果有异常调用ThrowAdvice(这个比上面两个复杂)。这个用处最大的我看就是事务控制了吧,权限
拦截也可以这样做,哈哈
感触;其实spring(基本上用到反射,当然设计模式很多,核心的bean),hibernate(就是封装了jdbc,里面重要的就是entity,表和entity对应),
struts1.x(就是封装了servlet,记不记得web.xml里面那个actionservlet,哇哈哈),刚开始学习的时候感觉框架很神秘,现在感觉还是基础重要啊,
大的框架都是一步步从基础累加出来的。
相关阅读 更多 +