본문 바로가기

Java15

[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.
Mybatis-config.xml에서 yaml의 값 읽어오기 Java, Quartz를 이용해 스케줄러를 개발하면서 DB 프레임워크로 Mybatis를 얹어서 사용했다. 설정값은 yaml에 모아놨는데, 관리 포인트를 하나로 집중하기 위해 mybatis-config.xml의 dataSource 설정도 yaml에서 관리하고 싶었다. Spring Boot를 썼을 때는 Mybatis 설정을 yaml에 해두면 알아서 읽어줬었는데, mybatis-config.xml에 사용할 때도 yaml에서 값을 읽어오게 할 수 있을까? 아래와같이 설정하니 정상적으로 작동했다. mybatis-config.xml config.yaml mybatis: # driver: oracle.jdbc.driver.OracleDriver # url: jdbc:oracle:thin:@....:1521/orcl .. 2021. 1. 5.
[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.