《Java Web程序设计教程习题答案 作者 范立锋 林果园 第12章习题答案》由会员分享,可在线阅读,更多相关《Java Web程序设计教程习题答案 作者 范立锋 林果园 第12章习题答案(2页珍藏版)》请在金锄头文库上搜索。
1、第12章 Spring AOP 习题答案第12章 Spring AOP习题答案1如何理解动态代理?答案:动态代理是代理模式的延伸和拓展,它改善了代理模式存在的一些弊端。通过Java的动态代理机制,可以非常容易地实现AOP思想,而Spring的AOP也是建立在 Java的代理机制之上的。在动态代理的实现过程中,代理对象是根据实际需要而被创建的。当应用程序需要调用某个对象时,该对象才会被创建。2如何理解Spring的AOP?答案:Spring AOP也是基于AOP这一基本思想,但是它却侧重于提供一个能与Spring IoC容器整合使用的AOP框架。Spring AOP不仅提供了AOP基础框架,还提
2、供很多现成方面实现。Spring AOP主要特点包括如下几方面:(1)支持方法调用的各类通知,包括前置型通知、后置型通知、抛出异常通知以及环绕型通知等等。(2)支持通过正则表达式指定切入点,同时支持切入点的组合操作。(3)可以在不修改框架核心代码的基础上加入自定义通知。(4)AOP组件可以被当作Spring Bean来管理,与IoC容器结合使用。(5)支持使用元数据实现AOP声明服务。(6)AOP组件可以应用于不同avaEE服务器。3Spring的通知包括哪些?答案:前置型通知(BeforeAdvice),后置型通知(AfterRetruningAdvice),环绕型通知(MethodInte
3、rceptor)以及抛出异常通知(ThrowAdvice)。4静态切入点和动态切入点有什么区别?答案:静态切入点只限于给定的方法和目标类,而不考虑方法的参数,在绝大多数情况下使用静态切入点能够满足程序需要。Spring在调用静态切入点时,只在第一次的时候计算静态切入点的位置并将它缓存起来,以后就不需要再进行计算了。 动态切入点不仅限定于给点的方法和类,还可以指定方法的参数。使用动态切入点要比使用静态切入点带来更多的性能损耗,因为在使用动态切入点时不仅要考虑静态信息,还要考虑方法的参数。每次方法被调用的时候,都需要对切入点进行计算,因为参数是变化的所以不能缓存每次的计算结果。5如何理解ProxyFactoryBean?答案:在Spring框架中ProxyFactory主要用于创建一个代理对象以实现AOP机制。在程序执行过程中,ProxyFactory会调用另一个组件DefaultAopProxyFactory来真正创建代理对象。根据设置的不同,被创建的代理对象可以是Cglib2AopProxy(CGLIB代理),也可以是JdkDynamicAopProxy(Java动态代理)。通过调用ProxyFactory提供的不同方法,我们可以在程序任意位置织入advisor或者advice。1