Spring AOP- Logging:日志没有打印出来

时间:2016-05-26 08:01:56

标签: java spring logging spring-aop

我是Spring-AOP的新手,并尝试在我的项目中使用它。我创建了一个实现MethodBeforeAdvice的类:

public class LogBeforeCallAdvice implements MethodBeforeAdvice{

    /* (non-Javadoc)
     * @see org.springframework.aop.MethodBeforeAdvice#before(java.lang.reflect.Method, java.lang.Object[], java.lang.Object)
     */
    @Override
    public void before(Method arg0, Object[] arg1, Object arg2)
            throws Throwable {
        System.out.println("**CALLING METHOD - " + arg0.getName() + " IN BEFORE CALLING ADVICE**");

    }

}

这些是我的application-context.xml文件的条目:

<bean id="proxy" class="org.springframework.aop.framework.ProxyFactoryBean">  
    <property name="target" ref="logMethods"></property>  
    <property name="interceptorNames">  
        <list>  
        <value>beforeCall</value>  
    </list>  
    </property>  
</bean>
<bean id = "logMethods" class = "com.MyPackage.LogMethods" lazy-init = "true" init-method="init">
    <property name = "someProperty" ref = "someBeanReference"/>
</bean>

在我的主要方法中,我得到这样的代理:

ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
LogMethods logMethods = (LogMethods)context.getBean("proxy");

执行上面的代码后,我没有得到用before()方法写入之前的日志。但我能够看到LogMethods类及其属性引用bean中提到的sys out。

我想打印LogMethods及其属性bean中所有方法的before advice日志。方法(不使用aspectj注释)。

我也没有收到任何错误。我究竟做错了什么?有人可以帮忙吗?

先谢谢!!

0 个答案:

没有答案