일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- transaction
- SpringBoot
- kotlin
- db
- JDBC
- AOP
- http
- Exception
- Proxy
- Greedy
- java
- JPQL
- 그리디
- 자바
- 스프링 핵심 기능
- QueryDSL
- Thymeleaf
- 인프런
- spring
- 스프링 핵심 원리
- 백준
- Servlet
- pointcut
- Android
- jpa
- springdatajpa
- Spring Boot
- 알고리즘
- 스프링
- 김영한
- Today
- Total
목록Join point (2)
개발자되기 프로젝트
1. 조인 포인트(Join point) 어드바이스가 적용될 수 있는 위치, 메소드 실행, 생성자 호출, 필드 값 접근, static 메서드 접근 같은 프로그램 실행 중 지점 조인 포인트는 추상적인 개념이다. AOP를 적용할 수 있는 모든 지점이라 생각하면 된다. 스프링 AOP는 프록시 방식을 사용하므로 조인 포인트는 항상 메소드 실행 지점으로 제한된다. 2. 포인트 컷(Pointcut) 조인 포인트 중에서 어드바이스가 적용될 위치를 선별하는 기능 주로 AspectJ 표현식을 사용해서 지정 프록시를 사용하는 스프링 AOP는 메서드 실행 지점만 포인트컷으로 선별 가능 3.타겟(Target) 어드바이스를 받는 객체, 포인트컷으로 결정 4. 어드바이스(Advice) 부가 기능 특정 조인 포인트에서 Aspect에..
AOP를 사용하면 핵심 기능과 부가 기능이 코드상 완전히 분리되어서 관리된다. 그렇다면 AOP를 사용할 때 부가 기능 로직은 어떤 방식으로 실제 로직에 추가될 수 있을까????? 3가지 방법 컴파일 시점 클래스 로딩 시점 런타임 시점(프록시) --> 지금까지 한거 1. 컴파일 시점 : AspectJ 사용 .java 소스 코드를 컴파일러를 사용해서 .class 를 만드는 시점에 부가 기능 로직을 추가할 수 있다. 이때는 AspectJ가 제공하는 특별한 컴파일러를 사용해야 한다. 컴파일 된 .class 를 디컴파일 해보면 애스펙트 관련 호출 코드가 들어간다. 한 마디로 부가 기능 코드가 핵심 기능이 있는 컴파일된 코드 주변에 실제로 붙어 버린다고 생각하면 된다. AspectJ 컴파일러는 Aspect를 확인해..