?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

新蒲京澳門賭場網站:WEB開發中Spring AOP實際應用一例

?

在WEB開拓中,用戶對網頁的造訪權限反省是一個緊張的環節。以STRUST為例,我們必要在Action的exc新蒲京澳門賭場網站ute措施中編寫相關的代碼(一樣平常是調用基類的函數),也很顯然,在每個Action中這是一種重復勞動。

假如我們在excute運行之前,能夠自動去調用基類的權限反省函數,這無疑是個好的辦理法子。AOP就為我們供給了這樣一種辦理措施。

下面以一個簡化的實例先容實現的法子。

首先我們做一個接口:

public interface CheckInterface {

public abstract void check(String name);

public abstract void excute(String name);

}

再做一個基類:

public abstract class BaseClass implements CheckInterface {

public BaseClass() {

}

public void check(String name){

if (name.equals("supervisor"))

System.out.println("Check Pass!!");

else {

System.out.println("No access privilege! Please do sth. else!");

}

}

}

再做一個測試類:

public class ExcuteClass extends BaseClass {

public ExcuteClass() {

}

public void excute(String name){

System.out.println("Excute here!"+name);

}

}

好了,下面做一個看護類(Advice):

import org.springframework.aop.MethodBeforeAdvice;

import java.lang.reflect.Method;

import org.apache.log4j.Logger;

public class BeforeAdvisor implements MethodBeforeAdvice {

private static Logger logger=Logger.getLogger(BeforeAdvisor.c新蒲京澳門賭場網站lass);

public void before(Method m, Object[] args, Object target) throws Thro新蒲京澳門賭場網站wable {

if (target instanceof CheckInterface){

logger.debug("Is Instanceof CheckInterface!!!");

CheckInterface ci=(CheckInterface)target;

ci.check((String)args[0]);

}

}

}

此中緊張的before措施的參數:Object target傳入的看護的工具(即測試類的接口),Method m, Object[] args分手是該工具被調用的措施和參數。我們再來作spring bean定義xml文件:

Spring Quick Start

.*excute.*

com.wysm.netstar.test.springaop.CheckInterface

myPointcutAdvisor2

這個定義文件指清楚明了ExcuteClass為監視工具,它的excute措施被履行的時刻,BeforeAdvisor將被調用。

著末是測試類:

import junit.framework.TestCase;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.FileSystemXmlApplicationContext;

public class SpringTestCase2 extends TestCase {

CheckInterface test=null;

protected void setUp() throws Exception {

super.setUp();

ApplicationContext ctx=new FileSystemXmlApplicationC新蒲京澳門賭場網站ontext("src新蒲京澳門賭場網站/com/wysm/netstar/test/springaop/aoptest.xml");

test = (CheckInterface) ctx.getBean("myCheckClass");

}

protected void tearDown() throws Exception {

super.tearDown();

}

public void testExcute(){

test.excute("supervisor");

}

}

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

快三平台开户