1HOON
논리적 코딩
1HOON
전체 방문자
오늘
어제
  • HOME (186)
    • ☕️ JAVA (28)
      • WhiteShip Java LIVE Study (6)
      • Effective JAVA (10)
    • 🔮 KOTLIN (4)
    • 🌱 SPRING (51)
      • 스프링 인 액션 (22)
      • JPA (18)
    • ☕️ JAVASCRIPT (6)
    • 📃 DATABASE (40)
      • ORACLE (37)
      • MSSQL (2)
    • 🐧 LINUX (4)
    • 🐳 DOCKER (5)
    • 🐙 KUBERNETES (4)
    • 🏗️ ARCHITECTURE (8)
    • 📦 ETC (26)
      • TOY PROJECT (5)
      • RECRUIT (1)
      • 그냥 쓰고 싶어서요 (14)
    • 🤿 DEEP DIVE (1)
    • 🚽 Deprecated (9)
      • PYTHON (3)
      • AWS (2)
      • HTTP 완벽가이드 (3)
      • WEB (1)

블로그 메뉴

  • 홈
  • 방명록
  • 관리

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
1HOON

논리적 코딩

어드바이스에서 파라메터 처리
🌱 SPRING/스프링 인 액션

어드바이스에서 파라메터 처리

2018. 5. 26. 18:45

어드바이스에서 파라메터 처리

메서드를 어드바이스하는 애스펙트가 파라메터를 가질 때 어떻게 처리할 수 있을까?


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@Aspect
public class TrackCounter
{
    private Map<Integer, Integer> trackCounts = new HashMap<Integer, Integer>();
    
    @Pointcut("execution(* soundsystem.CompactDisc.playTrack(int)) && args(trackNumber)")
    public void trackPlayed (int trackNumber) {}
    
    @Before("trackPlayed(trackNumber)")
    public void countTrack (int trackNumber)
    {
        int currentCount = getPlayCount(trackNumber);
        trackCounts.put(trackNumber, currentCount + 1);
    }
    
    public int getPlayCounts (int trackNumber)
    {
        return trackCounts.containKey(trackNumber) ? trackCounts.get(trackNumber) : 0;
    }
}
Colored by Color Scripter
cs


이전의 샘플 코드와는 다른점은 execution의 메서드 인자가 명확하게 표기되었으며, args(trackNumber) 가 추가되었다는 것이다.


이는 playTrack() 에 전달되는 int 인자는 어드바이스로도 전달됨을 나타내는 것이며, 파라메터명 trackNumber 는 포인트커트 메서드의 동일 명의 파라메터와 연관된다.


 


 이 포스트는 스프링 인 액션을 읽고 개인적으로 필요하다고 생각되는 내용을 정리한 포스트입니다.

일부 내용, 소스코드는 스프링 인 액션의 내용일 수 있습니다.

반응형
저작자표시 비영리 변경금지 (새창열림)

'🌱 SPRING > 스프링 인 액션' 카테고리의 다른 글

스프링 MVC 세팅  (0) 2018.05.30
스프링에서의 요청 처리 순서  (0) 2018.05.30
@Around  (0) 2018.05.26
애스펙트 정의하기  (0) 2018.05.26
포인트 커트를 이용한 조인 포인트 선택  (0) 2018.05.26
    '🌱 SPRING/스프링 인 액션' 카테고리의 다른 글
    • 스프링 MVC 세팅
    • 스프링에서의 요청 처리 순서
    • @Around
    • 애스펙트 정의하기
    1HOON
    1HOON

    티스토리툴바