Written on
·
363
1
@ResponseBody 로 Map 을 리턴하는 로직에서 인터셉터를 구현하여 결과 데이터값을 디비에 저장해보고 싶습니다. request, response 를 postHandle() 에서 받은 후, response.getOutputStream() 으로 받아오면 된다고 생각했는데 500 에러가 납니다. getOutputStream 으로는 response 값을 핸들링할 수만 있고 값을 받아오지는 못하는건가요?
Answer 1
1
안녕하세요, 임연균 님! 공식 서포터즈 codesweaver 입니다.
response 에서 획득한 outputstram 은 클라이언트에게 응답할 때 사용합니다.
이를 데이터베이스에 저장하기 위한 용도로 사용할실 수 없습니다.
.
Map의 정보를 데이터베이스에 저장하는 경우라면 postHandler 를 이용하시기 보단,
서비스 로직에서 데이터베이스 저장 로직을 추가하는 것이 좋습니다.
감사합니다.
답변 감사합니다! 다만 각 웹 요청마다 request uri, 접속 ip, 처리 결과 등등을 db에 담으려는 interceptor(handlerinterceptor) 를 구현하려고 하는데 response body 를 interceptor에서 받을 수 있는 방법은 없을까요? (기존 코드는 건들이지 않고 응답 값만 db에 담는 로직을 구현하는 것이 과제입니다 ㅜㅜ ) 코드를 전체 손봐야하는 수 밖에는 없을까요?