Spring Framework(182)
-
"com.xyz.trading..*" vs "com.xyz.trading.*.*"
@Pointcut("within(com.xyz.trading..*)") 이 포인트컷 표현식은에서 "com.xyz.trading..*"는 패키지 이름을 의미합니다. 구체적으로 설명드리면:🔹 "within(com.xyz.trading..*)" 의미 분석within(...):해당 타입이 속한 클래스의 전체 이름(qualified name)이 지정한 패턴에 속하는 경우에만 적용됩니다.즉, 클래스가 특정 패키지에 존재할 때 포인트컷이 매칭됩니다."com.xyz.trading..*":com.xyz.trading은 패키지 이름입니다...은 하위 패키지까지 모두 포함한다는 의미입니다.*은 모든 클래스를 의미합니다.따라서, 이 포인트컷은 다음에 해당하는 모든 클래스에 정의된 메서드 실행 시점을 매칭합니다:com.xyz..
2025.06.11 -
@EnableAspectJAutoProxy
🌿 Spring AOP @EnableAspectJAutoProxy@EnableAspectJAutoProxy는 Spring AOP 환경에서 AspectJ 스타일의 애스펙트(@Aspect)를 적용할 수 있게 해주는 애노테이션입니다. XML 설정 방식의 를 대체하는 자바 기반 설정 방식이라고 이해하면 됩니다. ✅ 왜 @EnableAspectJAutoProxy가 필요한가?Spring은 디폴트로 POJO 객체에 대해 AOP 기능을 적용하려면 프록시(proxy)를 생성해야 합니다.그리고 어떤 클래스가 @Aspect로 마킹되어 있을 때, 이를 처리해주는 AOP Post processor(Advisor, Advice)를 동작하게 만드는 설정이 바로 @EnableAspectJAutoProxy입니다. 🧩 기본 사용법@..
2025.06.09 -
Pointcut Expression 예제들
🧩 Pointcut Expression 전체 구조: execution(modifiers-pattern? return-type declaring-type? method-name-pattern(param-pattern) throws-pattern?) 🧪 Pointcut Expression 예제들execution( * // 리턴 타입: 아무 타입이나 transfer // 메서드 이름: transfer라는 이름 (..) // 파라미터: 개수와 타입 상관없이) 🔍 세부 구성 설명구성 요소설명executionAOP의 표현식 종류 중 하나로, 메서드 실행 조인포인트를 지정합니다. Spring AOP는 이 execution() 만 지원합니다..
2025.06.07 -
@AliasFor
“어노테이션의 특정 엘리먼트(속성)에 별칭(alias)이 왜 필요하냐?”그냥 하나의 속성으로 만들면 되지, 왜 굳이 다른 이름으로 같은 걸 연결하는 이유는? ✅ 1. 사용자가 익숙한 방식으로 쓰도록 하기 위해 (API 유연성)예: @RequestMapping Spring에서는 아래 두 가지 방식 모두 허용합니다:@RequestMapping("/hello") // value를 생략한 축약형@RequestMapping(path = "/hello") // 명시적으로 path 속성 지정 그런데 사실 value()와 path()는 같은 뜻입니다. 그래서 Spring에서는 이렇게 선언해놨습니다:@AliasFor("path")String value() default "";@Alias..
2025.05.26 -
static @Bean 팩토리 메서드란
Spring의 자바 기반 구성 메타데이터(Java-based configuration metadata)에서 @Bean 어노테이션이 붙은 팩토리 메서드(factory method)가 static으로 선언된다는 것은, Spring이 그 메서드를 실행할 때 해당 구성 클래스(@Configuration)를 인스턴스화하지 않고도 호출할 수 있다는 의미입니다. 📌 핵심 정리: static @Bean 팩토리 메서드란?@Configurationpublic class AppConfig { @Bean public static MyService myService() { return new MyService(); // static 팩토리 메서드 }}이처럼 @Bean 메서드에 static을 붙이면..
2025.05.19 -
GenericBeanDefinition
🧩 원문 요약GenericBeanDefinition은 선언적 빈 정의를 위한 "원스톱 샵(one-stop shop)" 클래스이며, 동적으로 부모-자식 관계 설정이 가능합니다.주로 XML 기반 구성이나 설정 단계에서 유연하게 빈을 정의할 수 있도록 사용되며, 병합 이후에는 RootBeanDefinition이 실제로 사용됩니다. 📘 문장별 상세 해석 및 분석 📌 문장 1:GenericBeanDefinition is a one-stop shop for declarative bean definition purposes.✅ 해석GenericBeanDefinition은 선언적 방식(declarative)의 빈 정의에 필요한 기능들을 한 곳에서 처리할 수 있는 범용(bean definition) 도구 클래스입니..
2025.05.19