您好,登錄后才能下訂單哦!
項目基本配置參考文章SpringBoot入門一,使用myEclipse新建一個SpringBoot項目,使用myEclipse新建一個SpringBoot項目即可,此示例springboot升級為2.2.1版本。
1. pom.xml添加aop支持
<!-- 引入aop切面支持 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
2. 創建自定義注解
package com.qfx.common.annotation;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
@Documented
@Retention(RUNTIME)
@Target(METHOD)
public @interface LoginAnno {
}
元注解釋義:
java.lang.annotation提供了四種元注解,專門注解其他的注解(在自定義注解的時候,需要使用到元注解):
@Documented –注解是否將包含在JavaDoc中
@Retention –什么時候使用該注解
@Target –注解用于什么地方
@Inherited – 是否允許子類繼承該注解
3. 創建自定義注解解析
package com.qfx.common.annotation;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;
/**
* <h6>描述:通過@Aspect注解使該類成為切面類</h6>
*/
@Aspect
@Component
public class LoginAnnoImpl {
@Pointcut("@annotation(com.qfx.common.annotation.LoginAnno)")
private void cut() {
}
/**
* <h6>功能:前置通知</h6>
*/
@Before("cut()")
public void before() {
System.out.println("自定義注解生效了");
}
}
4. 使用自定義注解
package com.qfx.common.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.qfx.common.annotation.LoginAnno;
@RestController
@RequestMapping("login")
public class LoginController {
@RequestMapping("reg")
public String reg(String userName) {
return "用戶[" + userName +"]注冊成功~!";
}
@RequestMapping("login")
@LoginAnno
public String login(String userName) {
return "歡迎您:" + userName;
}
}
4. 完整項目結構
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。