spring28 AOP 적용 방식 AOP를 사용할 때 부가 기능 로직은 어떤 방식으로 실제 로직에 추가될 수 있을까? 1. 컴파일 시점 .java → .class 이 시점에 부가 기능 로직 추가 가능 AspectJ 컴파일러는 Aspect를 확인해서 해당 클래스가 적용 대상인지 먼저 확인하고, 적용 대상인 경우 부가 기능 로직을 적용한다. 위빙(Weaving): 애스펙트와 실제 코드를 연결해서 붙이는 것 (원본 로직에 부가 기능 로직 추가) 단점: 특별한 컴파일러도 필요하고 복잡하다. 2. 클래스 로딩 시점 .class 파일을 JVM 내부 클래스 로더에 보관할 때 이 .class 파일을 조작한 다음 JVM에 올릴 수 있다. 로드 타임 위빙 단점: 자바 실행할 때 특별한 옵션(java -javaagent)을 통해 클래스 로더 조작기를 지정해.. Tech/Spring 2023. 10. 16. Spring Security 예외 처리 스프링 시큐리티로 로그인을 구현하던 중 예외 처리에 대한 이슈가 있었다. AOP를 통해 공통 관리를 해주려고 했으나 기대했던대로 처리가 되지 않았다. import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; @ControllerAdvice public class AdminExceptionHandler { @ExceptionHandler(AcceptAdminException.class) public String handleAcceptAdminException(Accep.. Tech/Spring 2023. 10. 4. @Target @Target @Target 어노테이션은 Java 어노테이션을 어떤 요소(Element)에 적용할 수 있는지를 지정하는데 사용된다. @Target 어노테이션은 어떤 종류의 Java 요소에 어노테이션을 적용할 수 있는지를 나타내는 열거형 상수(ElementType) 배열을 값으로 가진다. 여기서 ElementType.TYPE은 어노테이션을 클래스, 인터페이스, 열거형(enum) 등의 타입 선언에 적용할 수 있음을 나타낸다. ElementType 종류 @Target 어노테이션은 다양한 ElementType 상수와 함께 사용될 수 있으며, 주요 ElementType 상수는 다음과 같다: ElementType.TYPE: 클래스, 인터페이스, 열거형(enum) 등의 타입 선언에 어노테이션을 적용할 수 있음을 나타.. Tech/Spring 2023. 9. 21. BindingResult vs Errors BindingResult와 Errors는 Spring Framework에서 사용되는 검증 결과를 담은 객체들로, 주로 웹 애플리케이션에서 폼 데이터 유효성을 검사하고 처리할 때 사용된다. 이 두 객체는 비슷한 역할을 하지만 약간의 차이가 있다. 1. BindingResult 주로 스프링 MVC 컨트롤러 메서드에서 데이터 바인딩 및 검증 결과를 수집하는 데 사용된다. 주로 폼 데이터를 엔티티 객체나 DTO 객체로 바인딩하고 검증할 때 활용된다. 특징 스프링 MVC 컨트롤러 메서드의 파라미터로 전달받는다. 주로 데이터 바인딩 및 유효성 검사 과정에서 발생하는 오류를 수집한다. 해당 컨트롤러 메서드에서 파라미터로 받은 BindingResult 객체를 통해 오류 정보를 확인하고 처리할 수 있다. BindingR.. Tech/Spring 2023. 9. 19. 이전 1 2 3 다음 728x90 반응형