springboot aspect通過@annotation進行攔截的實例代碼詳解
annotation就是注解的意思,在我們使用的攔截器時,可以通過業(yè)務(wù)層添加的某個注解,對業(yè)務(wù)方法進行攔截,之前我們在進行統(tǒng)一方法攔截時使用的是execution,而注解的攔截我們使用@annotation即可,我們可以做個例子,比如搞個防止重復(fù)提交的注解,然后在攔截器里去寫防止重復(fù)提交的邏輯就好了。
攔截器數(shù)據(jù)源
/**
* 防止重復(fù)提交
*
* @author BD-PC220
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface RepeatSubmit {
/**
* 間隔多長時間提交,默認(rèn)1秒
*
* @return
*/
long time() default 1;
/**
* 作為驗證重復(fù)提交的key,
*
* @return
*/
String key();
}
業(yè)務(wù)實現(xiàn)的攔截器代碼
/**
* URL重復(fù)提交攔截器.
*/
@Slf4j
@Component
@Aspect
public class RepeatSubmitAspect {
@Autowired
StringRedisTemplate redisTemplate;
@Around("@annotation(repeatSubmit)")
public Object around(ProceedingJoinPoint proceedingJoinPoint, RepeatSubmit repeatSubmit) throws Throwable {
log.info("repeatSubmit={}", repeatSubmit.toString());
}
}
在單元測試?yán)锶ソI(yè)務(wù)方法,然后建立單元測試的方法等
@Component
public class RepeatSubmitController {
@RepeatSubmit(key = "get")
public String get() {
return "success";
}
}
測試代碼
@RunWith(SpringRunner.class)
@SpringBootTest()
@Slf4j
public class RepeatSubmitTest {
@Autowired
RepeatSubmitController repeatSubmitController;
@Test
public void test() {
log.info(repeatSubmitController.get());
}
}

到此這篇關(guān)于springboot aspect通過@annotation進行攔截的文章就介紹到這了,更多相關(guān)springboot aspect通過@annotation攔截內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
spring中@ControllerAdvice 注解的使用
@ControllerAdvice注解是Spring3.2中新增的注解,主要用于Controller的全局配置,本文就來介紹一下spring中@ControllerAdvice 注解的使用,感興趣的可以了解一下2024-09-09
Springboot RocketMq實現(xiàn)過程詳解
這篇文章主要介紹了Springboot RocketMq實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-05-05
Java經(jīng)緯度小數(shù)與度分秒相互轉(zhuǎn)換工具類示例詳解
這篇文章主要介紹了Java經(jīng)緯度小數(shù)與度分秒相互轉(zhuǎn)換工具類,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07
總結(jié)Java中線程的狀態(tài)及多線程的實現(xiàn)方式
Java中可以通過Thread類和Runnable接口來創(chuàng)建多個線程,線程擁有五種狀態(tài),下面我們就來簡單總結(jié)Java中線程的狀態(tài)及多線程的實現(xiàn)方式:2016-07-07
Failed to execute goal org...的解決辦法
這篇文章主要介紹了Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1的解決辦法的相關(guān)資料,需要的朋友可以參考下2017-06-06

