[Spring] Private 메서드에 @Transactional 선언 시 트랜잭션이 동작하는가?
·
Back-end/Spring
매일메일을 통한하루하루 CS 공부하기  기본적으로 @Transactional, @Cacheable, @Async 등의 AOP 어노테이션은 런타임에 동작하는 Spring AOP를 기반으로 동작한다. Spring AOP가 제공하는 JDK Dynamic Proxy, CGLIB 방식 모두 타깃이 구현하는 인터페이스나 구체 클래스를 대상으로 프록시를 만들어서 타깃 클래스의 메서드 수행 전후에 횡단 관심사에 대한 처리를 할 수 있다. Spring은 빈 생성시, 해당 빈에 AOP 애너테이션이 있는지 검사하고, 있다면 프록시 객체를 생성하여 빈을 대체한다. AOP 적용 대상인 클래스의 경우, 즉, @Transactional과 같은 AOP 애너테이션이 하나라도 선언된 클래스는 프록시로 감싸진다. JDK Dynamic P..
[Spring] @RequestPart vs @RequestParam vs @RequestBody
·
Back-end/Spring
@RequestPartContent-Type 이 'multipart/form-data' 에 특화된 어노테이션HTTP request body 에 multipart/form-data 가 포함되어 있는 경우에 사용 MultipartFile 을 받을 때 사용 가능단, HttpMessageConverter 가 Content-Type 을 참고하여 알맞는 Converter 로 처리한다 MultipartFile 이 포함되는 경우에 MultipartResolver가 동작하여 역직렬화를 하게 된다.(역직렬화 : Byte로 되어있는 데이터를 객체 형태로 변환)단, MultipartFile 이 포함되어있지 않다면, @RequestBody 와 마찬가지로 HttpMessageConverter가 동작된다.@RequestParamH..