Spring AOP 구현 방법 및 적용 예제
Spring 프레임워크의 핵심 기능 중 하나인 AOP(Aspect-Oriented Programming)는 다음과 같은 기능을 제공합니다:
선언적 트랜잭션 관리
사용자 정의 관점(Aspect) 정의
AOP 주요 개념
횡단 관심사(Cross-cutting Concerns): 여러 모듈에 걸쳐 반복되는 공통 기능으로, 비즈니스 로직과는 분리되어야 하지만 반드시 처리해야 하는 부분입니다. 예: 로깅, 보안, 캐싱, 트 ...
8월 22일 03:57에 게시됨
JDK와 CGLIB를 활용한 동적 프록시 기반 AOP 핵심 기능 구현
동적 프록시와 AOP의 기반 기술AOP(Aspect Oriented Programming)를 구현하기 위해서는 핵심 기술인 동적 프록시(Dynamic Proxy)에 대한 이해가 필수적입니다. 동적 프록시는 런타임 시점에 타겟 객체를 감싸는 프록시 객체를 생성하여, 기존 코드의 수정 없이 메서드 호출을 가로채고 추가적인 로직을 적용할 수 있게 해줍니다. 이를 통해 로깅, 트랜잭션, 보안 등 횡단 ...
7월 31일 08:49에 게시됨
Spring MVC AOP 어노테이션 기반 Aspect 설정 및 IllegalArgumentException: formal unbound in pointcut 오류 해결
Maven 의존성 설정
<!-- 스프링 AOP 핵심 라이브러리 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>4.0.2.RELEASE</version>
</dependency>
<!-- AspectJ 어노테이션 방식 지원 라이브러리 -->
<dependency>
<groupI ...
7월 15일 16:25에 게시됨
스프링 AOP의 다섯 가지 통지 유형
스프링 AOP에서 제공하는 핵심 기능 중 하나는 다양한 통지 유형을 통해 프로그램 실행 흐름을 제어하는 것입니다. 이 기능을 활용하면 비즈니스 로직과 분리된 공통 기능(예: 로깅, 트랜잭션 관리)을 효과적으로 구현할 수 있습니다.
CustomAnnotation.java
package com.example.aop;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
...
6월 29일 20:07에 게시됨
Spring 트랜잭션 기초와 @Transactional 활용
Spring에서 데이터베이스 트랜잭션을 처리하려면 aspectjrt와 aspectjweaver 의존성이 필요합니다.
필수 의존성
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.9.5</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId& ...
6월 21일 00:23에 게시됨
스프링 부트에서의 AOP(관점 지향 프로그래밍) 및 포인트컷 표현식 활용
AOP 핵심 개념
관점(Aspect): 로깅이나 권한 검사와 같은 공통 관심사를 모듈화한 구성요소로, @Aspect 어노테이션을 통해 클래스를 관점으로 선언한다.
조인포인트(Join Point): 메서드 호출이나 예외 발생과 같은 실행 시점의 특정 위치이며, 스프링 AOP는 메서드 수준만 지원한다.
어드바이스(Advice): 조인포인트에서 수행되는 동작으로 다섯 가지 유형이 있다:
@Bef ...
6월 13일 19:54에 게시됨