一、情景
一般情況下,如果現有功能完成編譯後,在不改變原始碼或無法獲取原始碼的情況下,很難再為其新增新的功能,此時spring aop可以為切面新增新的功能。
二、實現
package com.giser.encore;
/** * 增強的功能介面
*/public inte***ce encoreable
package com.giser.encore.impl;
import com.giser.encore.encoreable;
/** * 增強的功能實現類
*/public class defaultencoreable implements encoreable
}
建立切面增強類
package com.giser.encore;
import org.aspectj.lang.annotation.aspect;
import org.aspectj.lang.annotation.declareparents;
@aspect
public class encorealbeintroducer
測試:
package com.giser.aoptest;
import org.junit.test;
import org.junit.runner.runwith;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.test.context.contextconfiguration;
import org.springframework.test.context.junit4.springjunit4classrunner;
import com.giser.aop.performance;
import com.giser.encore.encoreable;
@runwith(springjunit4classrunner.class)
@contextconfiguration(value = )
public class springtest3
}
結果:
silencing cell phones
takeseats
silencing cell phones
takeseats
gis performance
defaultencoreable
可以看到已經有了增強功能。 spring AOP 多個切面
切面 日誌 author w7 public class logger 切面 安全框架 author w7 public class security 切面 許可權 author w7 public class privilege public void setaccess string acces...
spring aop 切面測試
spring 配置 aop 切面類 package com.changhang.urgoo.impl.utils import com.changhang.urgoo.impl.entity.result.mesresult import com.changhang.urgoo.impl.entit...
Spring aop 切面程式設計
package cn.annals.demo.proc.aop import org.aspectj.lang.joinpoint import org.aspectj.lang.proceedingjoinpoint import org.aspectj.lang.annotation.after...