분류 전체보기(348)
-
@AspectJ support
@AspectJ@AspectJ는 애노테이션을 사용하여 일반적인 자바 클래스로 어드바이스를 선언하는 스타일을 의미합니다. @AspectJ 스타일은 AspectJ 5 릴리스의 일환으로 AspectJ 프로젝트에서 도입되었습니다. Spring은 포인트컷을 해석하고 매칭[match:연결]하기 위해 AspectJ에서 제공하는 라이브러리를 사용하여 동일한 애노테이션을 AspectJ 5처럼 해석합니다. 그러나 AOP 런타임은 여전히 순수한 Spring AOP로 동작하며, AspectJ 컴파일러나 위버(weaver)에 대한 의존성은 없습니다.AspectJ 컴파일러와 위버를 사용하면 전체 AspectJ 언어를 사용할 수 있으며, 이에 대한 내용은 "Using AspectJ with Spring Applications"에서..
2023.05.22 -
Filter
Spring Web 모듈 필터 개요Spring Web 모듈은 서블릿 기반 애플리케이션에서 웹 요청을 처리하는 데 유용한 여러 필터를 제공합니다. 이 필터들은 폼 데이터 처리, 전달된 헤더 관리, 얕은 ETag 캐싱, CORS(교차 출처 리소스 공유) 처리를 위한 기능을 제공합니다. 각 필터의 역할에 대해 자세히 살펴보겠습니다.Form Data 필터기본적으로 브라우저에서는 HTTP GET 또는 POST 메서드를 통해서만 폼 데이터를 전송할 수 있습니다. 하지만 비-브라우저 클라이언트(예: REST 클라이언트)는 다른 HTTP 메서드인 PUT, PATCH, 또는 DELETE를 사용하여 폼 데이터를 전송할 수 있습니다. Servlet API는 POST 요청에 대해서만 ServletRequest.getParam..
2023.05.19 -
클래스 로딩과 관련된 제약 사항
보호되어 있는 글입니다.
2023.05.19 -
DelegatingIntroductionInterceptor의 delegate 객체 생성
DelegatingIntroductionInterceptor에서 delegate를 임의의 객체로 설정하는 방법은 간단합니다. 생성자에서 delegate를 인자로 받아서 설정하면 됩니다. 이렇게 설정된 delegate는 도입된 인터페이스의 메서드 호출을 처리하게 됩니다.아래는 delegate를 임의의 객체로 설정하는 예제 코드입니다.예제 코드먼저, 도입할 인터페이스와 해당 인터페이스의 실제 구현체를 정의합니다.// 도입할 인터페이스public interface Lockable { void lock(); void unlock(); boolean locked(); }// Lockable 인터페이스를 구현한 클래스 (Delegate로 사용할 객체)public class CustomL..
2023.05.19 -
Proxy Target Class 조건
보호되어 있는 글입니다.
2023.05.17 -
Class Loader
Class Loader클래스 로더는 JVM에서 클래스 파일을 로드하고, 해당 클래스를 메모리에 정의하는 역할을 담당합니다.자바에서는 클래스 로더(Class Loader)가 클래스당 하나씩 존재합니다. 자바에서 클래스 로더(Class Loader)가 클래스당 하나씩 존재하는 이유에는 몇 가지 이유가 있습니다. 이러한 클래스당 하나의 클래스 로더 구조는 자바 언어의 동작 원리와 안정성을 보장하는 데 도움이 됩니다.네임스페이스 분리(Namespace Isolation): 각 클래스 로더는 독립된 네임스페이스를 가지고 클래스를 로드합니다. 클래스 로더마다 고유한 클래스 패스를 가지며, 같은 이름의 클래스라도 서로 다른 클래스 로더에 의해 로드될 수 있습니다. 이를 통해 서로 다른 버전의 동일한 클래스가 충돌하지..
2023.05.17