programming/Spring
-
[Spring] tomcat query parameter 배열 처리하기programming/Spring 2022. 3. 5. 17:31
타이틀은 Spring이라고 적었지만, 톰캣에서 처리하는 방법이다. 해당 타이틀은 Spring + tomcat 개발 시 쿼리 파라미터를 처리할 때 에러가 발생할 경우 처리하는 방법이다. 예를 들어 아래와 같은 방식으로 url을 호출받아야 하는 경우. (다른 서버에서 나의 서버를 호출하는 경우다.) mydomain.com?product[i][id]=PID0001 이러한 경우 "[" , "]"와 같은 문자 때문에 에러가 나서 제대로 처리되지 않을 수 있다. 이때는 톰갯의 server.xml 파일을 찾아 아래와 같이 수정하면 해결될 수 있다. 해당 부분을 처리하면 되는데, relaxedQueryChars의 값을 채워주면 된다. 아니면 호출하는 쪽에서 encoding 하여 호출하면 더욱 쉽게 처리할 수 있다. 위..
-
[Spring] RestTemplate 한글 깨짐programming/Spring 2022. 2. 26. 16:02
Spring의 RestTemplate을 이용해서 API를 호출할 때, 한글이 제대로 등록이 안될 때가 있다. 그럴 땐 아래와 같이 인코딩을 설정해서 해결해 볼 수 있다. RestTemplate restTemplate = new RestTemplate(); restTemplate.getMessageConverters() .add(0, new StringHttpMessageConverter(StandardCharsets.UTF_8)); ** 출처 https://stackoverflow.com/questions/29392422/how-can-i-tell-resttemplate-to-post-with-utf-8-encoding How can I tell RestTemplate to POST with UTF-8 ..
-
[Spring] "}"은(는) 예상되지 않았습니다.programming/Spring 2021. 4. 12. 23:02
"}"은(는) 예상되지 않았습니다. 처음 보는 에러에 당황해서 구글링을 했지만... 뚜렷한 해결책이 보이지 않았기에, 적어본다. 나의 경우엔 start.spring.io 통해서 demo 프로젝트를 다운로드하여서 ./mvnw install 을 실행시켜 보는 간단한 작업을 하고 있었는데, "}"은(는) 예상되지 않았습니다. 라고 에러가 발생했다. 이는 demo를 여러 번 받아서 폴더 이름이 "demo (2)"로 되어 있어서 발생했던 것으로 파악된다. "demo (2)"를 "dem"으로 바꿔서 실행하니 문제없이 실행됐다. C:\Users\user\Downloads\demo (2)\demo >> 위와 같은 경로에서 아래와 같이 변경 C:\Users\user\Downloads\dem\demo 이게 카테고리가 왜 ..
-
[Spring] @PathVariable 기본값 설정하기programming/Spring 2020. 12. 6. 22:00
@Controller에서 파라미터를 받는 방법은 아래와 같은 방법들이 있다. 1. /API_NAME?key1=val1 2. /API_NAME/{value1} 선호하는 방식대로 하면 되겠지만, 여기서는 2번과 관련된 글이다. 2번과 같은 방식으로 받기 위해서는 @Controller에서 @PathVariable을 사용하면 된다. @GetMapping("/test/{cnt}") public String methodName(@PathVariable int cnt){ // TODO.. return "test"; } 위와 같이 코드를 작성하면, "localhost:8080/test/3"과 같이 호출했을 때 cnt 값이 3이 된다. 하지만, 만약에 "localhost:8080/test"와 같이 변수를 넣어주지 않으면..
-
[Spring] 코로나 감염 현황 OpenApi 사용하기programming/Spring 2020. 11. 25. 22:00
완성된 Sample 프로젝트는 아래 방법으로 받을 수 있다. > git clone https://github.com/devdevdev09/Covid19-Korea-OpenApi-Sample.git 샘플 프로젝트는 README.md에 기본적인 사용법을 작성해두었다. 한 번 더 적어본다면, 아래 순서로 실행할 수 있다. 1. 코로나19감염현황에서 api 활용 신청 2. 신청 승인 후 인증키를 application.yml의 openapi>serivce>key에 입력 3. 프로그램을 실행 하고 localhost:20019/covid19 호출 먼저 신청은 자동승인으로 신청 후 바로 인증키를 발급받을 수 있었던 것 같다. 그리고 해당 인증키를 application.yml에 openapi > service > key..
-
[Spring] xml 데이터 처리하기2 (코로나 OpenAPI)programming/Spring 2020. 11. 23. 14:33
[Spring] xml 데이터 처리하기 스프링에서 xml 처리를 위한 방법을 정리해본다. 1. build.gradle 파일을 작성한다. compile group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version: '2.11.3' 2. 아래 코드처럼.. leeborn.tistory.com 위 글에선 xml을 처리하는 기본적인 사용법만을 정리했다. 이번엔 실제 OpenAPI를 사용해서 처리하는 방법을 정리해본다. OpenAPI는 공공데이터 포털에서 쉽게 구할 수 있다. 그중에서도 현재 써볼 만한 OpenAPI는 코로나 감염 현황 API가 있다. 공공데이터 포털 국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 ..
-
[Spring] xml 데이터 처리하기programming/Spring 2020. 11. 9. 22:44
스프링에서 xml 처리를 위한 방법을 정리해본다. 1. build.gradle 파일을 작성한다. compile group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version: '2.11.3' 2. 아래 코드처럼 사용하는데, 매개변수는 xml은 String xml = ""; 등의 xml 형식의 String이다. Response도 내가 사용하는 xml의 형태를 정의한 클래스이므로, Response 대신 자신에게 맞는 클래스 타입을 사용하면 된다. public Response parser(String xml) { ObjectMapper xmlMapper = new XmlMapper(); Response response = n..
-
[Spring Boot] application.yml의 리스트 값 사용하기programming/Spring 2020. 10. 7. 22:11
기본적인 사용법은 여기에서 확인할 수 있다. 리스트를 사용하려면 아래와 같이 사용하면 된다. application.yml messenger: list: KAKAOTALK,SLACK,LINE,TELEGRAM 그리고 spring boot에서 application.yml의 값을 가져와서 사용하려면 아래와 같이 사용할 수 있다. application.yml의 값을 String 또는 설정된 enum값으로 사용할 수 있다. MainController.java (1) - List 로 사용 import org.springframework.beans.factory.annotation.Value; @RestController public class MainController { @Value("${messenger.list..