當前位置:
首頁 > 知識 > 在springboot中配置aop攔截器

在springboot中配置aop攔截器

在spring裡面還提供有一種aop攔截器配置,不過大部分的aop攔截器都是圍繞著業務層進行攔截處理的。

1、建立一個普通的業務操作介面和它的子類:

@Service

public class MemberServiceImpl implements IMemberService{

@Override

public Member get(String mid) {

Member vo = new Member();

vo.setMid(mid);

vo.setName("張三");

return vo;

}

}

現在業務層的操作完成之後隨後去修改控制層,讓控制層進行業務層的調用。

import org.springframework.web.bind.annotation.RequestMapping;

import javax.validation.Valid;

import java.util.Iterator;

@Controller

public class MemberController extends AbstractBaseController{

@Autowired

private IMemberService memberService;

@RequestMapping(value="/member_get", method = RequestMethod.GET)

@ResponseBody

public Object get(String mid) {

return this.memberService.get(mid);

}

}

訪問地址:http://localhost:8080/member_get?mid=100

現在的業務層只是一個純粹的調用而已,但是現在希望對調用的過程進行攔截處理,所以要想實現這樣的處理,那麼就需要引入新的開發依賴包,修改pom.xml配置文件:

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

SpringBoot

com.gwolf

1.0-SNAPSHOT

4.0.0

com.gwolf

springboot-base

jar

springboot-base

spring-boot-starter-web

spring-boot-starter-test

test

org.springframework

springloaded

spring-boot-devtools

spring-boot-starter-thymeleaf

spring-boot-starter-aop

junit

junit

test

編寫一個aop攔截的控制程序類。

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import java.util.Arrays;

@Aspect

@Component

public class ServiceAspect {

private Logger log = LoggerFactory.getLogger(ServiceAspect.class);

@Around("execution(* com.gwolf..service..*.*(..))")

public Object aroundInvoke(ProceedingJoinPoint point)

throws Throwable {

+ Arrays.toString(point.getArgs()));

Object object = point.proceed(point.getArgs());

+ object);

return object;

}

}

查看我們業務層的aop攔截輸出列印。

對於web攔截可以使用攔截器,而對於業務層的攔截可以使用Aspect表達式結合AOP的攔截機制實現。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Adolph談JAVA高端 的精彩文章:

SpringBoot整合Mybatis實現事務控制
反射與代理設計模式-動態代理設計模式

TAG:Adolph談JAVA高端 |