반응형

로그 보여주기

spring.jpa.show-sql=true

Pretty하게 로그 보여주기

spring.jpa.properties.hibernate.format_sql=true

 

로그 보기 레벨

logging.level.org.hibernate.SQL=debug

쿼리 파라미터 로그 표시

logging.level.org.hibernate.type.descriptor.sql=trace

728x90
반응형

Spring Framework에서 의존성 주입이 이루어진 후 초기화를 수행하는 메서드입니다. @PostConstruct가 붙은 메서드는 클래스가 service 로직을 수행하기 전에 발생합니다. 다른 리소스에서 호출되지 않는다해도 수행됩니다.

bean 라이프사이클에서 오직 한 번만 수행되는 것을 보장한다. WAS가 올라가면서 Bean이 생성될떄 한번만 초기화 됩니다. 즉 Bean이 여러번 초기화 되는것을 방지할 수 있습니다.

728x90
반응형

Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported]

 

@PostMapping annotation이 빠졌을 경우, 통신을 할 때 주고받는 방식이 맞지 않아서 (즉, 보낼 때는 POST로 전송하였지만 GET 방식으로 받게끔 설정되어있을 경우) 위와 같은 에러가 발생하는 경우가 많았다.

 

하지만 모든 경우들을 다 체크한 결과, 모두 잘 연결되어있고 코드상 이상한 점이 전혀 없었다. 그렇게 열심히 삽질을 한 후(?) 문득 가장 기본적인 부분을 놓치고 있었다는 것을 발견함과 동시에 깨달을 수 있었다.

 

jsp페이지에서 <button> 태그를 만들어 버튼을 누를 때 동작을 처리하여 서버와 연결하였는데 button 태그에 type을 지정해주지 않아 버튼만 누르면 무조건 controller로 넘어가고 있는 것이었다..!

( 기억하기론 button의 type을 지정해주지 않으면 기본 type은 submit이 되기 때문에 주의해야한다. )

 

물론 form 태그에 action값을 설정해주고, 그 이외의 설정 등도 제대로 되어있었다면 에러는 나지 않았을 것이다. 하지만 비동기로 통신하는 게시판을 구현 중에 있었기에 action값을 설정해두지 않고 ajax에서 mapping을 해주었기 때문에  @PostMapping org.springframework.web.servlet.PageNotFound - Request method 'POST' not supported 이와 같은 에러가 발생하였다.

 

 

 

 

위와 같은 오류 메시지가 있다면 확인해야할 사항 2 가지

①  jsp 페이지에서 <button> 태그에 type="button" ( <button type="button">~</button> )을 설정해주지 않을 경우, 버튼을 누르게 되면 바로 controller로 submit 된다. 단순히 submit 하는 것이 아닌 다른 event와 logic이 있다면 에러가 발생할 수 있다.

 

 

② @RequestMapping annotation을 사용할 경우, view와 controller의 전송 방식이 맞지 않을 때 위와 같은 에러가 발생할 수 있다.

 

따라서 POST 방식으로 호출하였다면 아래 코드와 같이,

@RequestMapping(value="/", method = {RequestMethod.GET})

GET 방식으로 호출하였다면 다음과 같이 설정해주어야한다.

@RequestMapping(value="/", method = {RequestMethod.POST})

혹은 두 가지 모두 사용한다면 동시에 넣어줄 수도 있다.

@RequestMapping(value="/", method = {RequestMethod.GET, RequestMethod.POST})

 

[출처]developerntraveler.tistory.com/m/20?category=867735

728x90

+ Recent posts