본문 바로가기

Java/Spring12

[Spring]WebClient 파라미터 인코딩 공공 API 연동 중. key값이 다르다는 500 응답이 날아왔다. 확인해보니 key는 문제가 없다. 내가 보낸 key를 서버에서 받아보니 내가 보낸 키와 다르다. 특수문자가 들어가있는데 인코딩 문제인 듯. 인코딩 없이 보냈을 때 문제가 됐던 코드 WebClient wc = WebClient.builder().baseUrl(API_URL).build(); try { ResponseEntity response = wc.get() .uri(uri -> uri.queryParam("ServiceKey", SERVICEKEY) .queryParam("nx", PARAM_NX) .queryParam("ny", PARAM_NY) .queryParam("dataType", PARAM_DATATYPE) .queryPa.. 2021. 1. 15.
[Spring][Transaction] 트랜잭션 제외하기, 트랜잭션 제외 안 될 때 음식점 예약 기능을 구현하던 중이었다. 예약을 담당하는 ReservationService에서 makeReservation 메소드를 통해 손님의 예약 정보를 저장한다. 예약 확인 문자가 정상적으로 전송되지 않았을 때는 예약 자체가 안 된 것으로 처리해야했으므로 예약 정보 저장이 롤백되어야 했다. 그래서 @Transactional 어노테이션을 달아 트랜잭션을 관리했다. 아래는 간략화한 코드이다. public class ReservationService{ @Transactional //1. 예약 public void makeRservation(ReservationInfo info) throws ReservationException, SMSException{ saveRerservationInfo(info); /.. 2020. 9. 7.
[Logback] Logback 설정 기록. 프로필에 따라, 패키지에 따라 분리. Spring Boot : 2.2.7.RELEASE log4jdbc : 1.16 logback-spring.xml src/main/resources/logback-spring.xml 클래스패스 경로 밑의 logback.xml를 읽는다. logback.xml이라고 해놓으면 스프링이 로드되기 전에 읽기 때문에 스프링 관련 설정값을 가져올 수 없다. 스프링 안에서 관리하고 싶다면 반드시 파일 이름을 logback-spring.xml으로 한다. 간단하게 설정한다면 application.yml 안에서 설정할 수 있다. spring: profiles: server logging: pattern: console: "[%d{yyyy-MM-dd HH:mm:ss}:%-3relative][%thread] %-5level %M.. 2020. 9. 3.
SpringBoot ViewResolver 설정, application.yml 읽지 못할 때 기존에 커스터마이징이 필요해 자바 설정에서 ViewResolver를 설정했었다. @Bean public InternalResourceViewResolver viewResolver() { InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); viewResolver.setViewClass(JstlView.class); viewResolver.setPrefix("/WEB-INF/views/"); viewResolver.setSuffix(".jsp"); viewResolver.setOrder(1); return viewResolver; } 그런데 추가 설정이 application.yml에서 가능하다는 것을 알게 되어 설정을.. 2020. 6. 18.