일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Spring Boot
- Web Server
- db
- devops
- 요리
- laravel
- MySQL
- AWS
- javascript
- Oracle
- php
- jenkins
- Gradle
- Design Patterns
- 맛집
- ReactJS
- Git
- java
- Spring
- it
- JVM
- IntelliJ
- elasticsearch
- springboot
- ubuntu
- tool
- jsp
- redis
- linux
- Spring Batch
Archives
- Today
- Total
아무거나
[Spring Boot] *Service로 끝나는 파일만 접근하는 Aspect 적용 본문
반응형
* 참고로 해당 포스팅은 Aspect가 gradle 디펜던시에 추가되어있다는 가정하에 진행
원하는 패키지 경로 안에 그 하위에 *Service로 끝나는 파일들만 Aspect 적용
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.Signature;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;
@Component
@Aspect
@Slf4j
@AllArgsConstructor
public class ServiceAspect {
// kr.co.bkjeon.services.api 패키지 안의 경로의 그 하위에 Service로 끝나는 파일들에 접근
@AfterReturning("execution(* kr.co.bkjeon.services.api.*.*Service.*(..))")
public void doSomethingAfterReturning(JoinPoint joinPoint) {
Signature signature = joinPoint.getSignature();
Object target = joinPoint.getTarget();
Object[] args = joinPoint.getArgs();
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes())
.getRequest();
System.out.println("--------------------------------------------------");
System.out.println("Signature : " + signature.toString());
System.out.println("target : " + target.toString());
System.out.println("name : " + signature.getName());
System.out.println("longName : " + signature.toLongString());
System.out.println("shortName : " + signature.toShortString());
for (int i=0; i < args.length; i++) {
System.out.println("args[" + i + "] : " + args[i].toString());
}
System.out.println("httpMethod : " + request.getMethod());
System.out.println("--------------------------------------------------");
}
}
반응형
'Java & Kotlin > Spring' 카테고리의 다른 글
[Spring Boot] 특정 패키지 내부의 원하는 클래스에 특정 메소드만 지정하여 Aspect 적용 (0) | 2020.06.06 |
---|---|
[Spring Boot] Spring Boot + Mybatis + Mysql 을 활용한 계층형(=hierarchy) 게시판 구현 (0) | 2020.05.31 |
Log4J 에서 isDebugEnabled() 을 사용한 효율적인 리소스 관리 (0) | 2020.05.08 |
[spring] 트랜잭션(Transaction) - 2 (0) | 2019.12.26 |
[spring] 트랜잭션(Transaction) - 1 (0) | 2019.12.26 |
Comments