요구사항: 신규 API를 기존의 프로젝트에 추가하기로 결정하고 작업을 진행 신규 API의 에러 response는 기존의 것들과 다르게 처리 ExceptionHandler를 이용해 처리했으나 인증 예외는 별도 처리가 필요했음 기존 프로젝트는 Spring 1.4.7이고 Oauth2 인증을 사용하고 있었음 잘못된 토큰으로 요청하고 debug해본 결과 AuthenticationEntryPoint의 다음 메소드를 override 하기로 결정 void commence(HttpServletRequest var1, HttpServletResponse var2, AuthenticationException var3) throws IOException, ServletException; @Slf4j public class C..
프로퍼티에서 값을 가져올 때 대부분은 @Value나 @ConfigurationProperties를 사용합니다. 때로는 Properties에 파일을 로드에서 사용하기도 합니다. java.util.Properties 그런데 저는 동적으로 객체에 바인딩해서 가져오고 싶었습니다. @Value를 사용하자니 primary type으로만 가능하고, @ConfigurationProperties를 사용하자니 동적으로 가져오는 것이 불가능합니다. 그렇다고 Properties를 사용하자니 단순히 읽기만 할 뿐인데 구현이 귀찮았습니다. 또 해당 기능이 스프링에 구현되어 있을 것 같기도 했습니다. 열심히 검색을 해서 Binder을 사용한다는 부분을 찾을 수 있었습니다. 다만 Binder를 사용하는 방법이 없었습니다. org.s..
MariaDB의 error handling은 oracle과 비슷합니다. 보통은 다음과 같이 처리하면 됩니다. CREATE Procedure return_error2 (out p_rtn_cd int) BEGIN DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN rollback; p_rtn_cd = -1; END; select * from hruser; END; handling 했을 경우 error가 아니게되기 때문에 rollback도 되지 않고 에러인지 확인도 되지 않습니다. 그래서 handling 시 ROLLBACK을 수행하고 실행결과도 매개변수로 처리했습니다. 일반적으로 procedure 내에서 COMMIT은 사용하면 안되고 START TRANSACTION은 이전에 수행된 ..
