當前位置:編程學習大全網 - 源碼下載 - 使用java語言,如何對壹個類中的靜態方法做切面編程?

使用java語言,如何對壹個類中的靜態方法做切面編程?

aop的事務代理機制最重要的放心是確定切入點,面,通知.具體看代碼,下面是在spring中配置的我自己寫的壹個異常處理的aop作用類 ,該配置切入面在於在controller包下的所有類的所有註解為aspect的切面類,通知類型為表示在目標方法之前切入,切入點為controller包下的所有類所有方法.至於樓主所說的靜態方法對於事務機制應該沒什麽區別吧,只要用within方法壹樣可以的

<!-- 定義***同處理組件 -->

<bean id="loggerBean"

class="org.tedu.cloudnote.aspect.LoggerBean">

</bean>

<!-- 將loggerBean組件切入到Controller方法上 -->

<aop:config>

<!-- 要切入哪個***同處理組件,ref指定***同組件id值 -->

<aop:aspect ref="loggerBean">

<!-- aop:before表示在目標方法之前切入,

method指定方法名;pointcut指定目標組件 -->

<aop:before method="logController"

pointcut="within(org.tedu.cloudnote.controller..*)"/>

</aop:aspect>

</aop:config>

之後這個bean所定義的 自定義類的代碼如下 ,希望樓主給個采納,如果問友喜歡,也可以給我個贊哦,摸摸大

package org.tedu.cloudnote.aspect;

import org.aspectj.lang.annotation.Aspect;

import org.aspectj.lang.annotation.Before;

import org.springframework.stereotype.Component;

//封裝***同處理的組件

@Component//掃描,等價於<bean>定義

@Aspect//等價於<aop:aspect ref="">

public class LoggerBean {

//要在Controller.execute開始位置切入

//方法規則:public void 方法名(){...} (前置通知)

@Before("within(org.tedu.cloudnote.controller..*)")

//等價於<aop:before method="logController" pointcut="">

public void logController(){

System.out.println("進入Controller組件處理");

}

}

  • 上一篇:《王牌對王牌7》沈騰吐槽宋亞軒5毛演技,對此妳怎麽看?
  • 下一篇:用單片機p2口擴展壹個4*4鍵盤,用c語言實現按鍵識別程序
  • copyright 2024編程學習大全網