Jinsu's Technical Blog
  • 홈
  • 태그
  • 방명록
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • 분류 전체보기 (250)
      • Java (18)
      • Spring Framework (33)
        • Toby's Spring 3.1 (6)
        • Spring IoC (6)
        • TDD (6)
        • Reflection (6)
        • AOP (6)
      • Spring Boot (11)
      • Spring Security (22)
      • Database (17)
        • Mysql (2)
        • JDBC (2)
        • JPA (13)
      • Build and Development Tools (3)
        • Maven (1)
        • Gradle (1)
        • Lombok (1)
      • Network (12)
      • Apache Tomcat (11)
      • Microservices Architecture (33)
      • Linux (9)
      • React (10)
      • Docker (22)
      • OAuth (10)
      • DevOps (2)
      • Git (2)
      • HTML (1)
      • CSS (1)
      • JavaScript (1)
      • Problem and Solution Guide (8)
        • Java (1)
        • Spring Framework (4)
        • Reflection (1)
        • Dynamic Proxy (1)
        • JPA (1)
      • Note-Taking (23)
  • 홈
  • 태그
  • 방명록
Spring Framework/AOP

Spring AOP와 AspectJ를 활용한 다양한 Advice 유형과 적용 방법

Declaring Advice어드바이스는 포인트컷 표현식과 연관되어 있으며, 포인트컷에 의해 매칭된 메서드 실행 전, 후 또는 실행 중에 실행됩니다. 포인트컷 표현식은 인라인 포인트컷이거나 named pointcut을 참조할 수 있습니다.Before Advice@Before 애노테이션을 사용하여 어드바이스를 선언할 수 있습니다.다음 예제는 인라인 포인트컷 표현식을 사용한 예제입니다:import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;@Aspectpublic class BeforeExample { @Before("execution(* com.xyz.dao.*.*(..))") public void d..

2024. 9. 2. 10:23
Spring Framework/AOP

Spring AOP의 @AspectJ 스타일과 포인트컷 구성 가이드

@AspectJ@AspectJ는 애노테이션을 사용하여 일반적인 자바 클래스로 어드바이스를 선언하는 스타일을 의미합니다. @AspectJ 스타일은 AspectJ 5 릴리스의 일환으로 AspectJ 프로젝트에서 도입되었습니다. Spring은 포인트컷을 해석하고 매칭[match:연결]하기 위해 AspectJ에서 제공하는 라이브러리를 사용하여 동일한 애노테이션을 AspectJ 5처럼 해석합니다. 그러나 AOP 런타임은 여전히 순수한 Spring AOP로 동작하며, AspectJ 컴파일러나 위버(weaver)에 대한 의존성은 없습니다.AspectJ 컴파일러와 위버를 사용하면 전체 AspectJ 언어를 사용할 수 있으며, 이에 대한 내용은 "Using AspectJ with Spring Applications"에서..

2024. 8. 29. 11:39
Spring Framework/AOP

Spring AOP APIs 3: 간결한 프록시 정의, ProxyFactory를 사용한 AOP 프록시 생성, Advised 객체 조작, 자동 프록시 기능 활용

Concise Proxy Definitions특히 트랜잭션 프록시를 정의할 때, 유사한 프록시 정의가 많이 생길 수 있습니다. 부모-자식 빈 정의와 내부 빈 정의를 사용하면 훨씬 깔끔하고 간결한 프록시 정의를 만들 수 있습니다.먼저, 다음과 같이 프록시를 위한 부모(템플릿) 빈 정의를 생성합니다:XML 기반 구성: PROPAGATION_REQUIRED 자바 기반 구성:@Configurationpublic class AppConfig { @Bean public TransactionProxyFactoryBean txProxyTemplate(TransactionManager transactionManager) { Tra..

2024. 8. 27. 16:04
Spring Framework/AOP

Spring AOP APIs 2: Advisor API 이해 및 ProxyFactoryBean을 활용한 AOP 프록시 생성

The Advisor API in SpringSpring에서 Advisor는 포인트컷 표현식과 연관된 단일 어드바이스 객체만을 포함하는 애스펙트입니다.도입(introductions)의 특별한 경우를 제외하고, 모든 어드바이저는 모든 어드바이스와 함께 사용할 수 있습니다. `org.springframework.aop.support.DefaultPointcutAdvisor`는 가장 일반적으로 사용되는 어드바이저 클래스입니다. 이 클래스는 `MethodInterceptor`, `BeforeAdvice`, 또는 `ThrowsAdvice`와 함께 사용할 수 있습니다.Spring에서는 동일한 AOP 프록시에서 어드바이저와 어드바이스 타입을 혼합할 수 있습니다. 예를 들어, 하나의 프록시 구성에서 인터셉션 aroun..

2024. 8. 27. 13:45
Spring Framework/AOP

Spring AOP의 고급 기능: Pointcut, Advice, Introduction의 이해와 적용

https://docs.spring.io/spring-framework/reference/core/aop-api.html Pointcut API in Spring이 섹션에서는 Spring이 중요한 포인트컷 개념을 어떻게 처리하는지 설명합니다.Concepts스프링의 포인트컷 모델은 advice 유형과 독립적으로 포인트컷을 재사용할 수 있게 해줍니다. 동일한 포인트컷으로 다양한 어드바이스를 타겟팅할 수 있습니다.org.springframework.aop.Pointcut 인터페이스는 특정 클래스와 메서드를 타겟으로 어드바이스를 지정하기 위해 사용하는 핵심 인터페이스입니다. 전체 인터페이스는 다음과 같습니다:public interface Pointcut { ClassFilter getClassFilter(..

2024. 8. 26. 17:08
Spring Framework/AOP

Spring AOP와 AspectJ를 활용한 모듈화 프로그래밍 이해하기

[공식문서]AOP(Aspect-Oriented Programming)는 프로그램 구조를 생각하는 또 다른 방법을 제공하여 OOP(Object-Oriented Programming)를 보완합니다. OOP에서의 주요 모듈화 단위는 클래스인 반면, AOP에서는 모듈화 단위가 aspect입니다. aspect는 트랜잭션 관리와 같은 여러 타입과 객체에 걸쳐 있는 문제를 모듈화할 수 있게 해줍니다. 이러한 문제는 AOP 문헌에서 흔히 crosscutting concerns라고 불립니다.Spring의 주요 구성 요소 중 하나는 AOP 프레임워크입니다. Spring IoC 컨테이너는 AOP에 의존하지 않으므로(AOP를 사용하지 않아도 된다는 의미) AOP를 꼭 사용해야 하는 것은 아니지만, AOP는 Spring IoC..

2024. 8. 26. 17:07
  • «
  • 1
  • »

공지사항

  • Jinsu's GitHub

전체 카테고리

  • 분류 전체보기 (250)
    • Java (18)
    • Spring Framework (33)
      • Toby's Spring 3.1 (6)
      • Spring IoC (6)
      • TDD (6)
      • Reflection (6)
      • AOP (6)
    • Spring Boot (11)
    • Spring Security (22)
    • Database (17)
      • Mysql (2)
      • JDBC (2)
      • JPA (13)
    • Build and Development Tools (3)
      • Maven (1)
      • Gradle (1)
      • Lombok (1)
    • Network (12)
    • Apache Tomcat (11)
    • Microservices Architecture (33)
    • Linux (9)
    • React (10)
    • Docker (22)
    • OAuth (10)
    • DevOps (2)
    • Git (2)
    • HTML (1)
    • CSS (1)
    • JavaScript (1)
    • Problem and Solution Guide (8)
      • Java (1)
      • Spring Framework (4)
      • Reflection (1)
      • Dynamic Proxy (1)
      • JPA (1)
    • Note-Taking (23)

블로그 인기글

전체 방문자

오늘
어제
전체
Powered by Privatenote Copyright © Jinsu's Technical Blog All rights reserved. TistoryWhaleSkin3.4

티스토리툴바