spring 4

Spring MVC구조 - 내부HTTP요청처리과정

개요 HTTP Request가 Spring에 들어왔을때 처리되는 과정과 순서를 정리한다. 순서 HTTP요청 → Filter(설정되어있는경우) → DispatcherServlet → HandlerMapping → Controller(service포함하는 비즈니스로직) → DispatcherServlet → HTTP응답 클라이언트에서 HTTP요청을 보낸다 필터가 설정되어 있는경우에만 서블릿 필터가 실행된다 WAS에서 HTTP요청을 기반으로 HttpServletRequest, HttpServletResponse객체를 생성하여 DispatcherServlet에게 전달한다. DispatcherServlet은 HandlerMapping에게 요청을 처리할 Controller(Handler)를 찾도록 지시한다. Han..

spring 2022.05.24

Spring Boot @Transactional

정의 스프링에서 어노테이션으로 선언적 트랜잭션 방식으로 트랜잭션을 처리하는것을 말한다. 사용 클래스, 인터페이스, 메소드에 사용할 수 있으면 메소드에 가장 가까운 어노테이션이 우선순위를 가진다. 어노테이션이 적용된 범위에서 트랜잭션 기능이 포함된 프록시 객체가 생성되어 자동으로 commit, rollback을 진행해준다. 이 프록시 객체는 @Transactional이 포함된 메소드가 호출 될 경우 PlatformTransactionManager를 사용하여 트랜잭션을 시작하고 commit, rollback을 진행해준다. 주의해야할점 - 적용범위 문제 상위메소드에서 하위메소드를 호출하는 경우, 하위메소드에서만 @Transactional을 선언하여 상위메소드에서 하위메소드시 호출시 @Transactional이..

spring 2022.05.24

eclipse querydsl세팅시 Qclass를 찾지 못하는 경우 Qclass no class def found error

프로젝트에서 기존에 JPA를 사용하고 있었지만, spring data jpa에서 제공하는 query method와 JPQL로 사용하고 있었다. 새로운 기능을 추가하며 querydsl을 사용하게 되었고 세팅과정에서 겪은 어려움을 공유하고자 한다. 내가 겪은 문제는 Q도메인 생성에 문제 없음 소스상에서도 정상적으로 Qclass import시 문제없음 build / jar파일 생성시에도 문제없음 하지만 포스트맨으로 api call하면 Qclass를 찾지 못하는 문제가 있었다. 쿼리타입을 사용하여 불러올때 QMember qMember = new QMember("m"); QMember qMember = QMember.member; 와 같이 선언한 부분에서 no class def found error를 내뱉으며 문..

JPA 2021.03.11