AOP的三種程式設計模式(第三種)
阿新 • • 發佈:2019-02-10
註解完成AOP程式設計applicationContext.xml檔案
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd "> <!-- 掃描spring的註解 --> <context:component-scan base-package="com.qhit.aop3"></context:component-scan> <!-- 掃描AOP的註解 --> <aop:aspectj-autoproxy></aop:aspectj-autoproxy> </beans>
package com.qhit.aop3; import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; import org.springframework.stereotype.Component; /* * 註解完成AOP程式設計 * 切面 * */ @Component //將物件交給一個IOC容器 @Aspect //切面註解 public class Aop3 { //切點 @Pointcut("execution(* com.qhit.aop3.*.*(..))") //說明切點 public void pointcut(){} @Before("pointcut()") public void begin(){ System.out.println("使用者開始登陸。。"); } @After("pointcut()") //出現異常就停止執行 //@AfterReturning("pointcut()") 出現異常繼續執行 public void end(){ System.out.println("使用者已經下線。。"); } }
介面
package com.qhit.aop3;
public interface UserDao {
void login();
}
繼承介面
package com.qhit.aop3;
import org.springframework.stereotype.Component;
@Component
public class User implements UserDao{
//切點
@Override
public void login() {
System.out.println("登陸成功。。");
}
}
測試類
package com.qhit.aop3; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { public static void main(String[] args) { ApplicationContext context=new ClassPathXmlApplicationContext("/com/qhit/aop3/applicationContext.xml"); UserDao u=(UserDao) context.getBean("user"); u.login(); } }