프록시3 private 메서드는 트랜잭션 처리를 할 수 없는 이유 의문 private 메서드는 @Transactional을 적용할 수 없다. 뭔가 예상이 가지만 그래도 한번 알아보자!! 먼저 @Transactional 부터 살펴보자! @Transactional 평소에 저희가 자주 사용하는 @Transactional에는 AOP가 적용되어있습니다. 이를 스프링 트랜잭션 AOP라고 합니다. 스프링 트랜잭션 AOP는 @Transactional이 붙여진 메서드가 실행되기 전에 begin을 호출하고 메서드가 종료한 뒤에 commit을 호출합니다! 어떻게 할 수 있는 걸까요?? 답은 프록시입니다!! Spring에는 두가지 프록시 구현체가 있는 데 Springboot에서는 CGLIb를 사용하기 때문에 CGLIb를 기준으로 설명하겠습니다! 아래는 에코노베이션 동아리에서 진행중인 도토링.. 2023. 7. 26. 에러 해결을 통해 공부하는 지연로딩과 프록시 프로젝트를 어느정도 마무리하고 실제 어떤 쿼리들이 실행되고 있는 지 확인하고 있는 도중 아래와 같은 상황을 목격했다. 문제 발생 현재, 회원테이블에서 회원의 아이디로 사용자를 찾으려고 한다. 내가 예상한 쿼리는 회원을 찾는 쿼리 1개인데 그 외의 쿼리들이 발생하고 있다. select user0_.id as id1_4_, user0_.character_fk as characte9_4_, user0_.deal_fk as deal_fk10_4_, user0_.user_goal_sleep_time as user_goa2_4_, user0_.user_goal_wake_time as user_goa3_4_, user0_.user_role_type as user_rol4_4_, user0_.user_age as us.. 2023. 1. 18. [김영한님 스프링 핵심원리] request scope request scope에 대해 알아보기 위해서, 로그를 찍어보는 간단한 예제를 만들겠습니다. @Component @Scope(value="request") public class MyLogger { private String uuid; private String requestURL; public void setRequestURL(String requestURL){ this.requestURL = requestURL; } public void log(String message){ System.out.println("[" + uuid + "]" + "[" + requestURL + "]" + message); } @PostConstruct public void init() { uuid = UUID.rand.. 2022. 11. 5. 이전 1 다음 728x90