近期由于项目需要,加入了Spring 框架,当时只是为了需要而加入,很多地方都没了去仔细了解,不知道为什么..
现在项目结束了,重新看下Spring 相关资料,做下总结:
1.Spring注入: Spring 获取Bean 有两种方式,一种是通过set 方式直接注入到当前程序中,另一种是通过 applicationContext.getBean("XXX") 根据bean名称来得到对象,需要注意:set注入时,如果配制文件中有同一个类的两个bean,这时Spring会产生异常:org.springframework.beans.factory.UnsatisfiedDependencyException ... ,这说明set注入时查找方式是根据类的类型去配制文件中查找,和名称无关...
2.Spring AOP Advice Spring 的AOP是Spring 中一个重要部分,AOP中我测试了下MethodBeforeAdvice,AfterReturningAdvice,MethodInterceptor,ThrowsAdvice之间的区别:
(1) MethodBeforeAdvice : 方法执行前先执行它
(2) AfterReturningAdvice : 方法正确执行后才会执行它.(注意:这里指方法正确执行)
(3) MethodInterceptor : 方法执行前后都能访问它,但它与AfterReturningAdvice 的区别在于 不论方法是否正确执行,都会执行它.
(4) ThrowsAdvice : 方法执行时,如果发生异常,则会执行它. (注:如果方法中异常已被捕捉,则不会执行异常通知..)
3. Spring Aop PointCut AwareSpring 的PointCut 可以让我们更方便的处理相关类:
(1)ControlFlowPointCut : 用来判断在方法的执行堆栈中是否调用过目标对象来完成某个任务.由于它是在运行时才会判断,所以它是一个动态的 PointCut
未完待续...