타임 리프의 상대경로 / 절대경로 //절대경로 표현식 //최종 URL : /article/6/remove Delete //절대경로 표현식 //최종 URL : /article/6/remove Delete //상대경로 표현식 //최종 URL : article/3/article/3/remove Delete //상대경로 표현식 //최종 URL : article/3/article/3/remove Delete 절대 경로 /로 시작하는 경로를 작성하면, 절대 경로로 작성된다. 현재 URL과 무관하게 경로식의 표현된 값 그대로만 나온다 상대 경로 앞에 "/"를 생략하면, 상대 경로로 작성된다 상대 경로는 현재 URL + 작성된 경로로 최종 URL이 설정된다.
이 포스팅은 인프런 김영한님의 강의를 복습하며 작성한 글입니다. @Aspect 횡단 관심사 적용 앞선 게시글들에서 로그 추적기를 달기 위해서 '프록시 개념'을 처음으로 도입했다. 그리고 그 프록시 개념을 좀 더 편리하게 쓰기 위해 자바 리플렉션을 활용했다. 자바 리플렉션으로 부족해 JDK 동적 프록시, CGLIB 동적 프록시를 사용했다. 거기에 스프링이 제공하는 프록시 팩토리를 사용했고, @Component들에도 프록시를 넣어주기 위해 빈 포스트 처리기(Bean Post Processor)까지 도입했다. 마지막으로 스프링이 제공하는 AnnotationAwareAutoProxyCreator라는 빈 후처리기를 이용해 손쉽게 @Aspect로 횡단 관심사를 적용할 수 있게 되었다. Spring이 제공하는 Aut..
이 글은 인프런의 김영한님의 강의를 듣고 복습하며 작성한 글입니다. 스프링이 제공하는 빈 후처리기, AutoProxyCreator 이전 게시글(https://ojt90902.tistory.com/701) 에서 빈 후처리기를 이용해서 스프링 빈이 등록되는 과정에서 원하는 빈을 선택해서 자동으로 프록시 빈을 생성하고 바꿔치기해서 등록하는 과정을 확인했다. 그런데 이 과정마저 귀찮아서 나온 것이 있다. 바로 스프링 AOP가 제공하는 AutoProxyCreator다. AutoProxyCreator AutoProxyCreator의 풀 네임은 AnnotationAwareAspectJAutoProxyCreator다. 이 녀석은 스프링 빈 후처리기인데, 특정 빈들만 선택적으로 어드바이스를 넣은 프록시 객체를 만들고 바..
이 포스팅은 인프런의 김영한님 강의를 복습하며 정리한 글입니다. 프록시 팩토리의 한계 앞선 글(https://ojt90902.tistory.com/701)에서 프록시 팩토리만으로는 @Component로 등록되는 스프링 빈들을 프록시 형태로 처리 해줄 수 없다는 한계점이 있다는 것을 알았다. 덤으로 의존관계 주입도 하나하나 @Configuration에서 해야하는데, 이 설정도 무척이나 번거롭다. 그렇다면 프록시 팩토리만 사용했을 때의 위 한계점은 어떻게 극복할 수 있을까? 빈 후처리기(Bean PostProcessor)의 활용 기본적으로 스프링 빈은 위의 그림처럼 등록이 된다. @Bean, @Component, @Import 어노테이션이 붙은 클래스들을 대상으로 스프링은 빈을 생성해서 스프링 빈 저장소에 ..
이 글은 인프런의 김영한님의 강의를 듣고 복습하며 정리한 글입니다. JDK 동적 프록시, CGLIB 동적 프록시 이전 글(https://ojt90902.tistory.com/700)에서 동적 프록시를 생성하기 위해 Java의 리플렉션 기술을 활용해 동적으로 메서드를 뽑아냈다. 그리고 이 기술을 바탕으로 구현된 JDK 동적 프록시 기술로 프록시 객체를 만들어 의존관계 주입을 통해 횡단 관심사를 처리했다. 그런데 한 가지 문제점이 있었다. JDK 동적 프록시는 반드시 인터페이스가 있는 환경에서만 사용할 수 있었다. 왜냐하면 인터페이스의 클래스 로더, 클래스 메타 정보 등을 넣어주어 동적으로 메서드를 뽑아오기 때문이다. 이처럼 인터페이스 없이 구체 클래스만 있을 때는 CGLIB라는 라이브러리를 이용해 대상 객..