본문 바로가기

SpringBoot3

Mybatis에서 반복되는 Update문 한번에 날리기 Mybatis에서 여러 개의 Update문을 한 번에 수행하는 방법기록 (MySql) 그전에 태그를 사용한 케이스는 크게 두 가지였고, 아래 케이스들은 쿼리문안에서의 반복이었기 때문에 문제없이 수행되었다. // 1. in절 ... AND a.auth IN #{item} ... // 2. insert문 INSERT INTO temp (temp_id , col1 , col2 , col3) VALUES (#{temp_id} , #{col1} , #{col2} , #{col3}) 내가 하고 싶은 건 update문 자체를 한 번에 여러 개 만들어 수행하는 것이었음 1. 일단 아래처럼 update문을 foreach로 반복해서 만들어서 수행해 보았다 UPDATE order m SET m.sort_order = #{r.. 2023. 1. 21.
Spring Boot에서 Request 이력 저장하기 클라이언트에서 호출한 Api 이력을 저장해야 하는 요구사항이 있었다. 시스템 관리 화면에서 호출하는 API의 호출 Url, 요청 파라미터, 요청 body를 저장해서 누가 어떤 이벤트를 발생시켰는지 이력을 확인할 수 있어야 했다. 시스템 관리 api 모든 요청에 대해서 저장해야했기 때문에 각 컨트롤러 내부가 아닌 공통 처리가 필요했다. Interceptor가 적용되어 있었기 때문에 Interceptor에서 호출 정보를 저장하면 되겠지 했는데 문제가 있었으니,, 인터셉터에서 바디를 꺼내서 저장 후 내부에서 다시 읽으려고 하면 에러가 팡팡 터졌다는 것 찾아보니 HttpServletRequest의 InputStream 은 한번 읽으면 다시 못 읽기 때문에 다시 읽으려고 하면 에러가 난다고 한다.. 구글링의 결과.. 2023. 1. 9.
[SpringBoot]SpringBoot에서 Filter와 Interceptor 사용하기 Filter 스프링에서 지원하는 기능은 아니고 javaee에서 지원하는 것으로 Dispatcher Servlet 이전에 실행되어 리소스에 대한 요청과 응답에 대해 필터링 작업을 하는 object이다. 인증, 로깅, 암호화 등에 사용할 수 있다. 더보기 Dispatcher Servlet은 HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러(Front Controller)이다. 필터의 실행 메소드 종류 void init(FilterConfig filterConfig) 필터 인스턴스 초기화 시 실행되는 메서드 void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 필터.. 2023. 1. 2.