`
gigi_112
  • 浏览: 113184 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

BeanNameAutoProxyCreator拦截器拦截某个实现类方法的步骤

阅读更多

 

第一步:配置实现MethodInterceptor的切面

public class OutsideInvokeLogInterceptor implements MethodInterceptor{
	private static Logger log = Logger.getLogger("outsideInvoke");
  
	@Override
	public Object invoke(MethodInvocation invocation) throws Throwable {
        String methodName = invocation.getMethod().toString();
        Object returnValue = invocation.proceed();
        if (returnValue == null) {
            log.warn("调用 " + methodName + "is fail,返回的result结果为空,方法入参为:(" + parseArguments(invocation.getArguments()) + ")");
            return ResultDTO.getFailureResult(BSErrorCode.INTERNAL_ERROR, BaseKeyMsgCode.RETURN_RESULTDTO_IS_NULL);
        }else{
            if(returnValue instanceof ResultDTO){
                ResultDTO<Object> resultDTO = (ResultDTO<Object>)returnValue;
                if(!resultDTO.isSuccess()){
                    log.warn("调用 " + methodName + " is fail ,方法入参为:(" + parseArguments(invocation.getArguments()) + ")"
                         + "返回值:" +resultDTO.getCode() + "," + resultDTO.getKey());
                } else{
                    log.info("调用 " + methodName + " is success ,方法入参为:(" + parseArguments(invocation.getArguments()) + ")");
                }
            }
        }
        return returnValue;

	}
}
 

 

 

<bean id="outsideInvokeLogAdvice" class="com.ali.luna.commons.service.interceptor.OutsideInvokeLogInterceptor" />

 

第二步:配置切点


<bean id="methodPointcut" class="org.springframework.aop.support.NameMatchMethodPointcut">
        <property name="mappedNames">
            <list>
                <value>add*</value>
            </list>
        </property>
    </bean>

 

第三步:配置自动代理

    <bean id="outsideInvokeLogInterceptor" class="org.springframework.aop.support.DefaultPointcutAdvisor">
        <property name="pointcut" ref="methodPointcut"/>
        <property name="advice" ref="outsideInvokeLogAdvice"/>
    </bean>
    <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
        <property name="beanNames">
            <list><value>activityService</value></list>
        </property>
        <property name="interceptorNames">
            <list>
                <value>outsideInvokeLogInterceptor</value>
            </list>
        </property>
    </bean>

 

1
2
分享到:
评论
1 楼 a250152 2012-11-11  
不错 ,真的不错 对初学者来说!

相关推荐

    AOP usage -- BeanNameAutoProxyCreator usage

    NULL 博文链接:https://tomboxfan.iteye.com/blog/350398

    Spring实现自动代理Demo

    Spring实现自动代理Demo,BeanNameAutoProxyCreator的运用,学习参考原理

    Spring.3.x企业应用开发实战(完整版).part2

    9.3.2 Spring的事务管理器实现类 9.3.3 事务同步管理器 9.3.4 事务传播行为 9.4 编程式的事务管理 9.5 使用XML配置声明式事务 9.5.1 一个将被实施事务增强的服务接口 9.5.2 使用原始的 TransactionProxyFactoryBean ...

    Spring3.x企业应用开发实战(完整版) part1

    9.3.2 Spring的事务管理器实现类 9.3.3 事务同步管理器 9.3.4 事务传播行为 9.4 编程式的事务管理 9.5 使用XML配置声明式事务 9.5.1 一个将被实施事务增强的服务接口 9.5.2 使用原始的 TransactionProxyFactoryBean ...

    spring in action英文版

     11.1.1 安全拦截器  11.1.2 认证管理器  11.1.3 访问决策管理器  11.1.4 运行身份管理器  11.2 管理身份验证  11.2.1 配置ProviderManager  11.2.2 根据数据库验证身份  11.2.3 根据LDAP...

    Spring + Hibernate + Struts 事务配置小例子(带提示框等小技巧)

    -- 下面定义BeanNameAutoProxyCreator所需的事务拦截器--&gt; &lt;value&gt;transactionInterceptor &lt;!-- 此处可增加其他新的Interceptor --&gt; &lt;!--定义DAO Bean ,由于BeanNameAutoProxyCreator自动...

    Spring-Reference_zh_CN(Spring中文参考手册)

    11.2. 利用JDBC核心类实现JDBC的基本操作和错误处理 11.2.1. JdbcTemplate类 11.2.2. NamedParameterJdbcTemplate类 11.2.3. SimpleJdbcTemplate类 11.2.4. DataSource接口 11.2.5. SQLExceptionTranslator接口 ...

    struts spring hibernate完整环境配置

    本程序是struts spring hibernate的完整环境配置, 包括: struts1.3 spring 2.0 hibernate 3.1 的... BeanNameAutoProxyCreator事务处理 中文乱码解决 MD5程序加密 AJAX验证码等 希望大家喜欢

    struts spring hibernate完整环境配置4/4

    本程序是struts spring hibernate的完整环境配置, 包括: struts1.3 spring 2.0 hibernate ... BeanNameAutoProxyCreator事务处理 中文乱码解决 MD5程序加密 AJAX验证码等 希望大家喜欢 4/4

    struts spring hibernate完整环境配置3/4

    本程序是struts spring hibernate的完整环境配置, 包括: struts1.3 spring 2.0 hibernate ... BeanNameAutoProxyCreator事务处理 中文乱码解决 MD5程序加密 AJAX验证码等 希望大家喜欢 3/4

    开源框架 Spring Gossip

    BeanNameAutoProxyCreator DefaultAdvisorAutoProxyCreator &lt;br&gt; 持久层 来看看 Spring 的 IoC 容器与 AOP 框架如何应用于持久层,包括了资料库、交易等相关议题。 资料库存取 Spring ...

    spring学习笔记

    Spring 的配置文件:..........................................................................................................7 1.3.4 在配置中配置类:........................................................

    struts2驱动包

    nested exception is java.lang.AbstractMethodError: org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator.postProcessAfterInstantiation(Ljava/lang/Object;Ljava/lang/String;)Z at org....

    SPRING API 2.0.CHM

    BeanNameAutoProxyCreator BeanNameAware BeanNameUrlHandlerMapping BeanNameViewResolver BeanNotOfRequiredTypeException BeanPostProcessor BeanPropertyBindingResult BeanPropertySqlParameterSource ...

    spring-framework-reference4.1.4

    Not Using Commons Logging ................................................................... 12 Using SLF4J ..............................................................................................

    spring-framework-reference-4.1.2

    Not Using Commons Logging ................................................................... 12 Using SLF4J ..............................................................................................

Global site tag (gtag.js) - Google Analytics