AspectJ 使用的一些註解
使用AspectJ時需要匯入aspectjrt-1.8.13.jar和aspectjweaver-1.8.13.jar這兩個jar包。
Annotation方式使用AOP
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: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">
<context:annotation-config/>
<context:component-scan base-package="com"/>
<aop:aspectj-autoproxy/>
</beans>
切入類定義
@Aspect //定義這個類為切入類
@Component
public class LoginInterceptorAnnotation {
@Before("doPoint()")
public void doQian(JoinPoint joinPoint) {
System.out.println("方法開始前我執行了!");
}
@After("execution(* com.samrtian.service.*.*(..))")
public void doHou() {
System.out.println("方法開始後我執行了!");
}
@Around("doPoint()")
public Object doAround(ProceedingJoinPoint pjp) throws Throwable {
System.out.println("前");
Object retVal = pjp.proceed();
System.out.println("後");
return retVal;
}
//定義切入哪些方法
@Pointcut("execution(* com.samrtian.service.*.*(..))")
public void doPoint() {}
}
@Aspect 定義類為切入類
@Pointcut 宣告一個切入策略供 @Before @After @ 選擇
@Before 被切入方法執行前執行
@After 被切入方法執行後執行
@Around 被切入方法前後都可以加入一些邏輯
@AfterReturning 被切入方法返回時執行
JoinPoint 加入這個引數可以獲取被切入方法的名稱和引數
XML方式使用AOP
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: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">
<context:annotation-config/>
<context:component-scan base-package="com"/>
<!-- <aop:aspectj-autoproxy/> -->
<bean id="loginInterceptorAnnotation" class="com.samrtian.aop.LoginInterceptorAnnotation"/>
<aop:config>
<aop:aspect id="logInterceptor" ref="loginInterceptorAnnotation">
<aop:around method="doAround" pointcut="execution(* com.samrtian.service.*.*(..))"/>
</aop:aspect>
</aop:config>
</beans>
程式碼
public class LoginInterceptorAnnotation {
// @Before("doPoint()")
public void doQian(JoinPoint joinPoint) {
System.out.println("方法開始前我執行了!");
}
// @After("execution(* com.samrtian.service.*.*(..))")
public void doHou() {
System.out.println("方法開始後我執行了!");
}
// @Around("doPoint()")
public Object doAround(ProceedingJoinPoint pjp) throws Throwable {
System.out.println("前");
Object retVal = pjp.proceed();
System.out.println("後");
return retVal;
}
//定義切入哪些方法
@Pointcut("execution(* com.samrtian.service.*.*(..))")
public void doPoint() {}
}
基本上就這些了 相關文章
- Spring AOP的AspectJ註解Spring
- spring-AOP(二)實現原理之AspectJ註解方式Spring
- AspectJ 在 Spring 中的使用Spring
- 關於 Angular 註解 @Injectable() 使用的一些誤區Angular
- spring中常見的一些註解Spring
- Java註解的使用Java
- @responseBody註解的使用
- @Mapper註解的使用APP
- 註解@PropertySource的使用
- @ResponseBody註解和@RequestBody註解使用
- java中的註解使用Java
- Spring的@PropertySource註解使用Spring
- Java註解解析-搭建自己的註解處理器(CLASS註解使用篇)Java
- AOP - AspectJ
- 使用 @SpringBootApplication 註解Spring BootAPP
- @GrpcServise 註解的作用和使用RPC
- Spring中@Import註解的使用SpringImport
- 如何使用JPA的@Formula註解?ORM
- Spring管理的@Configuration註解使用Spring
- Java註解與反射的使用Java反射
- springBoot自定義註解的使用Spring Boot
- myBatis——註解,#{}與${},resultMap的使用MyBatis
- Spring MVC 常用註解的使用SpringMVC
- Android | 使用 AspectJ 限制按鈕快速點選Android
- 面向切面的Spring(一) AOP術語、AspectJ表示式說明,execution表示式含有註解寫法Spring
- Typescript註解使用案例TypeScript
- 使用註解開發
- 註解@PropertySource使用 springbootSpring Boot
- Spring(使用註解配置)Spring
- Spring的@Qualifier註解使用說明Spring
- Java 如何優雅的使用註解Java
- 對DiscuzQ的一些使用見解
- 03-Spring IOC容器的基本使用(註解的使用)Spring
- SpringBoot dubbo 的簡單使用註解版本Spring Boot
- spring boot使用註解的方式整合mybaitsSpring BootAI
- @NoArgsConstructor、@Getter、@Setter註解及Lombok的使用StructLombok
- Swagger3註解使用Swagger
- 【Spring註解驅動開發】使用@Scope註解設定元件的作用域Spring元件