import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servl..
이전에 Listener 관련 글을 쓰면서 JobListener와 StepListener에 대해 설정과 사용법에 대해 알아보았다. 여기에 추가적으로 ChunkListener에 대해서 알아보도록 하겠다. Job 안에 Step이 있고 Step 안에 Chunk가 있으니 앞서 본 것보다 더 작은 단위라고 이해하면 된다. ChunkListener 외에도 Step 하위에서 실행되는 Listener의 목록은 다음과 같다. Spring Batch는 이렇게 아주 작은 단위까지도 세밀하게 Listener를 넣을 수 있고 Control 할 수 있다. Chunk 단위로 잘 실행이 되는지 테스트를 하며 이 ChunkListener를 사용해 봤다. 물론 Chunk로 수행하는 Step이어야지 Tasklet은 ChunkListener..
Spring Locale처리 - SessionLocaleResolver, LocaleChangeInterceptor 사용법 Spring Locale처리 - AcceptHeaderLocaleResolver 사용법 (Browser Locale 변경방법) 이전에 Spring에서 주로 쓰이는 Locale 처리 방법에 대해서 알아보았다. 이번에는 Cookie를 이용한 Locale을 정의하는 CookieLocaleResolver에 대해 이야기하려한다. SessionLocaleResolver에 대한 이해가 있다면 이 CookieLocaleResolver는 아주 쉽게 이해할 수 있다. CookieLocaleResolver는 말 그대로 Cookie를 이용해서 Locale 정보를 담는 것이다. setLocale()을 통해..
일전에 Spring Batch의 Chunk 방식에 대해 공유를 한적이 있었다. [Spring Batch] Chunk Example (File to DB, Springboot based) Spring Framework의 개발환경이 Springboot 기반으로 변함에 따라 Spring Batch의 개발방식도 이전과는 많이 달라졌다. 필자가 전에 쓴 Spring Batch에 관한 글은 Springboot 기반이 아니라서 Batch Job을 작성하.. oingdaddy.tistory.com 이때 DB Writer는 JdbcBatchItemWriter 라는 것을 사용했었다. 이것은 단점이 있다. 바로 query 를 java 소스에 작성을 해야 하는 문제가 있다. 보기도 좋지 않고 관리도 좋지 못하다. 그래서 이런..
Spring을 사용하면 기본 Servlet인 Dispatcher Servlet을 사용한다. web.xml 이 있을때는 이곳에 Dispatcher Servlet을 설정했고 그 외의 다른 Servlet이 필요하면 마찬가지로 web.xml 에 등록하여 사용했다. 하지만 Springboot에서는 기본적으로 web.xml을 사용하지 않고 java config 를 사용하므로 전에 사용하던 방식과는 다르게 설정이 필요하다. java config 를 이용해 Dispatcher Servlet이 아닌 다른 Servlet을 어떻게 설정하는지 살펴보자. (참고로 Dispatcher Servlet은 Springboot에서는 기본으로 설정되어 있으므로 설정을 하지 않아도 된다. ) ServletConfig.java @Config..
logback-spring.xml 파일을 application.yml 파일에 옮기는 작업을 일전에 진행했었다. 다 전환을 하고 springboot app을 기동하니 다음과 같은 오류가 발생하였다. [13:23:10.131][DEBUG][sun.rmi.server.call.log:line229] - RMI TCP Connection(2)-127.0.0.1: [127.0.0.1] exception: javax.management.InstanceNotFoundException: org.springframework.boot:type=Admin,name=SpringApplication at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor..
개발자 도구로 열어보면 위와 같이 favicon.ico 500 에러를 한번씩은 봤을 것이다. favicon이라고 하는건 브라우저 탭의 앞에 나오는 이미지를 말한다. 즉 어플리케이션의 대표 이미지라고 할 수 있다. Springboot로 만드는 어플리케이션에도 이런 favicon을 달 수 있다. 아주 간단하다. ico 파일 생성하기 일단 favicon 규격에 맞는 이미지를 만들어야 한다. ICO Convert - Create Icons From PNG & JPG Images Online ICO Convert is a free online icon maker and favicon generator, with it you can make icons from png or jpg images, just upload..
일전에 똑같은 주제에 대해 글을 썼었는데 더 괜찮은 방법이 있어서 다시 글을 작성해본다. 적용방법은 아주 간단하다. web.xml *.jsp UTF-8 false /WEB-INF/jsp/common/common.jsp 기존의 web.xml이 위와 같이 있다고 하자. 하고 싶은건 모든 jsp 파일에 common.jsp 파일을 import 시키는 것이다. 여기서 이렇게 설정하지 않은면 모든 jsp 페이지에서 common.jsp 파일을 import 해야 한다. 하지만 springboot에는 web.xml을 사용하지 않는다. 사용할수는 있어도 권고하지는 않는다. 위의 web.xml의 jsp-config 부분은 아래와 같이 사용할 수 있다. JspConfig.java @Configuration public cla..