Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- javascript
- 백준
- 접근제어자
- etf
- 오버라이딩
- mco
- 주식
- 제태크
- 미국주식
- 금리인상
- 자바
- 그리디 알고리즘
- 프로그래머스
- 주린이
- 다형성
- FCF
- 인플레이션
- 배당성장
- 현금흐름표
- object
- Java
- 알고리즘
- StringBuffer
- 기업분석
- 객체지향
- 금리인하
- S&P500
- 무디스
- XLF
- 잉여현금흐름
Archives
- Today
- Total
오늘의하루
Unable to proxy interface-implementing method [public final void org.springframework.web.filter.OncePerRequestFilter.doFilter(jakarta.servlet.ServletRequest,jakarta.servlet.ServletResponse,jakarta.servlet.FilterChain) throws jakarta.servlet.ServletExcep.. 본문
Spring/JPA
Unable to proxy interface-implementing method [public final void org.springframework.web.filter.OncePerRequestFilter.doFilter(jakarta.servlet.ServletRequest,jakarta.servlet.ServletResponse,jakarta.servlet.FilterChain) throws jakarta.servlet.ServletExcep..
오늘의하루_master 2024. 3. 12. 12:47오류 발생 시점
Spring Security와 JWT를 통해 인증 인가를 진행하려고 했고 Jwt Filter에서 @Transactional를 사용했기 때문에 발생하였다.
원인
정확한 원인은 아닌 것 같지만 @Transactional 어노테이션을 사용하면 스프링은 해당 메서드를 실행할 때 트랜잭션을 시작하려고 하지만, 이미 실행 중인 트랜잭션이 없기 때문에 오류가 발생할 수 있습니다.
느낀점
내가 @Transactional을 적용한 곳은 단순히 데이터를 조회하는 용도이므로 트랜젝션이 필요없다.
트랜젝션 관리는 데이터를 변경하는 작업에만 필요하다는건 알고 있었지만 깜빡하고 썻던거 같다.
@Transcational은 일반적으로 서비스 계층에서 DB 트랜젝션을 처리하는데 사용된다.
그리고 필터에서 DB에 직접 접근하는것은 권장하지 않는다는 글이 있어서 생각 해볼 것들이 있따.
- 성능 : 필터는 모든 요청에 대해 실행되므로 DB에 대한 접근이 많아 질 수 있다.
- 트랜젝션 관리 : 필터에서는 트랜잭션의 시작과 종료를 명확하게 관리하기 어렵기 때문에 원하지 않는 동작이 발생할 우려가 있다.
- 확장성 : 필터는 서블릿 컨테이너에서 실행되므로 다양한 부분에서 재사용하기 어려우므로 유지 관리하는데 어려움이 생긴다.
'Spring > JPA' 카테고리의 다른 글
[JPA] CascadeType과 orphanRemoval 설정 이해하고 사용하기 (0) | 2024.11.27 |
---|---|
[JPA] Json 다형성을 활용한 DTO 설계와 확장 (0) | 2024.11.26 |
org.hibernate.loader.MultipleBagFetchException 원인 및 해결 (0) | 2024.02.15 |
[JPA] LazyInitializationException 발생! (0) | 2024.02.14 |
JPA 연관 관계 매핑 - start (1) | 2024.01.14 |
Comments