springMVC開啟聲明式事務實現操作日志記錄


第一步、在applicationContext-mvc.xml開啟AOP注解掃描

<aop:aspectj-autoproxy/>

第二步、創建增強類,實現日志記錄

@Component //把切面添加到spring容器中
@Aspect //變成切面類
public class WriteLog {
    /**
    *參數:代表目標方法對象
    *
    */
    public Object around(ProceedingJoinPoint pjp) throws Throwable {
        //得到方法簽名對象
        MethodSignature ms = (MethodSignature) pjp.getSignature();
        Method m = ms.getMethod(); //獲得方法對象
        //判斷方法上是否有@RequestMappering注解
        if(m.isAnnotationPresent(RequestMapping.class)){
            //獲取此@RequestMappering注解
            RequestMapping mapping = m.getAnnotation(RequestMapping.class);
            System.out.println(new Date());
            System.out.println(request.getRemoteAddr()); //獲取客戶機IP地址
            System.out.println(m.getName());//保存方法名
            System.out.println(mapping.name()); //獲取注解的name屬性值
        } Object object
= pjp.proceed(); //執行真實的方法 return object; } }

第三步、配置切入點和切面

    <bean id="advice" class="WriteLog"/>
    <aop:config>
        <aop:pointcut id="pt" expression="execution(* com.alibaba.controller.*.*.*.(..))"/>
        <aop:aspect  ref="advice"  >
            <aop:before method="around" pointcut-ref="pt"/>
        </aop:aspect>
    </aop:config>

第四步、測試即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM