Spring MVC
-
이번 포스트에서는 locale과 알아보고 spring boot에서 locale관리 방법에 대해 알아보자. Locale Locale이란? Locale이란 사용자의 언어, 지역 설정을 정의하는 문자열로 Locale에 따라 날짜, 숫자등의 출력 포멧이 다양하게 표현된다. public void afterPropertiesSet() throws Exception { printByLocale(Locale.KOREA); printByLocale(Locale.US); } private void printByLocale(Locale locale) { double money = 123456.789; LocalDateTime now = LocalDateTime.now(); NumberFormat nf = NumberForm..
Locale 관리이번 포스트에서는 locale과 알아보고 spring boot에서 locale관리 방법에 대해 알아보자. Locale Locale이란? Locale이란 사용자의 언어, 지역 설정을 정의하는 문자열로 Locale에 따라 날짜, 숫자등의 출력 포멧이 다양하게 표현된다. public void afterPropertiesSet() throws Exception { printByLocale(Locale.KOREA); printByLocale(Locale.US); } private void printByLocale(Locale locale) { double money = 123456.789; LocalDateTime now = LocalDateTime.now(); NumberFormat nf = NumberForm..
2023.12.13 -
이번 포스트에서는 Redis를 이용해서 세션을 관리해보자. 내용은 다음의 글을 참조한다. https://docs.spring.io/spring-session/reference/guides/boot-redis.html Spring Session - Spring Boot :: Spring Session After adding the required dependencies, we can create our Spring Boot configuration. Thanks to first-class auto-configuration support, setting up Spring Session backed by Redis is as simple as adding a single configuration propert..
SpringBoot에서 Redis를 이용한 세션 관리이번 포스트에서는 Redis를 이용해서 세션을 관리해보자. 내용은 다음의 글을 참조한다. https://docs.spring.io/spring-session/reference/guides/boot-redis.html Spring Session - Spring Boot :: Spring Session After adding the required dependencies, we can create our Spring Boot configuration. Thanks to first-class auto-configuration support, setting up Spring Session backed by Redis is as simple as adding a single configuration propert..
2023.11.16 -
SpringBoot 3.x에 들어서면서 jakarta.XX 패키지가 전면에 들어오면서 여러가지 혼선이 발생했다. 라이센스가 변경되면서 한번은 거쳐야하는 홍역인듯 하다. ㅠㅠ 이번 포스트에서는 SpringBoot 3.x에서 jsp, jstl의 사용 설정에 대해서 살펴보자. SpringBoot 3.x에서 jsp, jstl 설정 tomcat 10.x 문제의 발단은 SpringBoot에 내장되는 톰켓의 버전이 9.x에서 10.x로 변경되면서 시작되었다. Tomcat initialized with port(s): 8080 (http) Starting service [Tomcat] Starting Servlet engine: [Apache Tomcat/10.1.8] 의존성의 변경 이에 따라 Servlet, JSP,..
[Spring@MVC] SpringBoot 3.x에서 jsp, jstl 설정SpringBoot 3.x에 들어서면서 jakarta.XX 패키지가 전면에 들어오면서 여러가지 혼선이 발생했다. 라이센스가 변경되면서 한번은 거쳐야하는 홍역인듯 하다. ㅠㅠ 이번 포스트에서는 SpringBoot 3.x에서 jsp, jstl의 사용 설정에 대해서 살펴보자. SpringBoot 3.x에서 jsp, jstl 설정 tomcat 10.x 문제의 발단은 SpringBoot에 내장되는 톰켓의 버전이 9.x에서 10.x로 변경되면서 시작되었다. Tomcat initialized with port(s): 8080 (http) Starting service [Tomcat] Starting Servlet engine: [Apache Tomcat/10.1.8] 의존성의 변경 이에 따라 Servlet, JSP,..
2023.06.22 -
처음 스프링을 공부하면서 Spring@MVC는 DispatcherServlet부터 관여하고 Filter는 Servlet 이전에 동작하기 때문에 Filter는 Spring과는 무관한 기술이라고 뇌리 속에 박고 있었는데.. 스프링에서는 DelegatingFilterProxy라는 녀석이 Filter에서도 스프링과의 협업이 가능하게 한다. 참고로 이 클래스는 Spring Security에서 Filter를 사용하기 위해서 등장했다. 이번 포스트에서는 Spring의 DelegatingFilterProxy에 대해서 살펴보자. DelegatingFilterProxy DelegatingFilterProxy DelegatingFilterProxy는 스프링의 빈을 filter로 사용하기 위한 proxy filter로 spr..
[Spring@MVC] 스프링과 Filter처음 스프링을 공부하면서 Spring@MVC는 DispatcherServlet부터 관여하고 Filter는 Servlet 이전에 동작하기 때문에 Filter는 Spring과는 무관한 기술이라고 뇌리 속에 박고 있었는데.. 스프링에서는 DelegatingFilterProxy라는 녀석이 Filter에서도 스프링과의 협업이 가능하게 한다. 참고로 이 클래스는 Spring Security에서 Filter를 사용하기 위해서 등장했다. 이번 포스트에서는 Spring의 DelegatingFilterProxy에 대해서 살펴보자. DelegatingFilterProxy DelegatingFilterProxy DelegatingFilterProxy는 스프링의 빈을 filter로 사용하기 위한 proxy filter로 spr..
2022.11.18 -
마지막으로 웹 오류에서 조금은 독특한 404 오류 처리에 대해서 살펴보자. 404 오류는 다른 오류와 달리 기본적으로 @Controller를 탈 필요가 없기 때문에 Exception으로 처리되지 않는 특성이 있다. 그럼 404 상황을 Exception으로 만들어서 처리할 수 있을까? legacy @ControllerAdvide에서 처리 404를 프로그래밍적으로 처리하고 싶다면 404 발생 시 예외를 발생시키도록 설정해야 한다.(기본적으로 404는 exception 상황이 아니다.) 이를 위해 web.xml에서 DispatcherServlet을 등록할 때 throwExceptionIfNoHandlerFound 초기화 파라미터를 true로 설정한다. dispatcher org.springframework.w..
[spring 예외 처리] 04. 프로그래밍적인 404 처리마지막으로 웹 오류에서 조금은 독특한 404 오류 처리에 대해서 살펴보자. 404 오류는 다른 오류와 달리 기본적으로 @Controller를 탈 필요가 없기 때문에 Exception으로 처리되지 않는 특성이 있다. 그럼 404 상황을 Exception으로 만들어서 처리할 수 있을까? legacy @ControllerAdvide에서 처리 404를 프로그래밍적으로 처리하고 싶다면 404 발생 시 예외를 발생시키도록 설정해야 한다.(기본적으로 404는 exception 상황이 아니다.) 이를 위해 web.xml에서 DispatcherServlet을 등록할 때 throwExceptionIfNoHandlerFound 초기화 파라미터를 true로 설정한다. dispatcher org.springframework.w..
2022.11.07 -
이전 포스트에서 @ControllerAdvice를 통한 예외 처리에 대해서 살펴보았다. 이번 포스트에서는 SpringBoot에서 특화된 처리방법을 살펴보자. SpringBoot의 오류 페이지 BasicErrorController SpringBoot에서 /error에 대한 처리를 담당하는 @Controller는 BasicErrorController이다. 이 녀석의 핵심되는 코드만 잠깐 살펴보자. @Controller // ${server.error.path} 또는 ${error.path} 또는 /error 요청에 대해 처리 @RequestMapping("${server.error.path:${error.path:/error}}") public class BasicErrorController extends ..
[spring 예외 처리] 03.프로그래밍을 통한 예외 처리 2이전 포스트에서 @ControllerAdvice를 통한 예외 처리에 대해서 살펴보았다. 이번 포스트에서는 SpringBoot에서 특화된 처리방법을 살펴보자. SpringBoot의 오류 페이지 BasicErrorController SpringBoot에서 /error에 대한 처리를 담당하는 @Controller는 BasicErrorController이다. 이 녀석의 핵심되는 코드만 잠깐 살펴보자. @Controller // ${server.error.path} 또는 ${error.path} 또는 /error 요청에 대해 처리 @RequestMapping("${server.error.path:${error.path:/error}}") public class BasicErrorController extends ..
2022.11.06 -
설정을 통해서 예외를 처리하는 방법은 간단하지만 개입할 여지가 없어진다. 예를 들어 오류 상황이 발생했을 때 logging을 한다든가, 관리자에게 메일을 보낸다든가 하는 일을 처리하기는 어렵다. 이처럼 예외 처리 시 부가적인 작업을 처리해야 하는 경우는 프로그래밍적으로 처리해야 한다. 이번 포스트에서는 Spring에서 프로그래밍적으로 예외를 처리하는 방식에 대해 알아보자. 개별 @Controller에서의 예외 처리 @Controller에서 예외를 처리하는 가장 기본적인 방법은 @ExceptionHandler를 활용하는 것이다. @Target(ElementType.METHOD) public @interface ExceptionHandler { Class[] basePackageClasses() defaul..
[spring 예외 처리] 02.프로그래밍을 통한 예외 처리 1설정을 통해서 예외를 처리하는 방법은 간단하지만 개입할 여지가 없어진다. 예를 들어 오류 상황이 발생했을 때 logging을 한다든가, 관리자에게 메일을 보낸다든가 하는 일을 처리하기는 어렵다. 이처럼 예외 처리 시 부가적인 작업을 처리해야 하는 경우는 프로그래밍적으로 처리해야 한다. 이번 포스트에서는 Spring에서 프로그래밍적으로 예외를 처리하는 방식에 대해 알아보자. 개별 @Controller에서의 예외 처리 @Controller에서 예외를 처리하는 가장 기본적인 방법은 @ExceptionHandler를 활용하는 것이다. @Target(ElementType.METHOD) public @interface ExceptionHandler { Class[] basePackageClasses() defaul..
2022.11.03 -
Swagger를 사용하다 보면 가끔 전혀 생각지 못했던 곳에서 오류가 나오곤 한다. 오늘은 이런 오류에 대해서 살펴보자. [06-27 16:27:39] [ WARN] [i.s.m.p.AbstractSerializableParameter.getExample-421] Illegal DefaultValue null for parameter type integer java.lang.NumberFormatException: For input string: "" at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67) at java.base/java.lang.Long.parseLong(Long.java:721)..
[swagger]Illegal DefaultValue null for parameter type integerSwagger를 사용하다 보면 가끔 전혀 생각지 못했던 곳에서 오류가 나오곤 한다. 오늘은 이런 오류에 대해서 살펴보자. [06-27 16:27:39] [ WARN] [i.s.m.p.AbstractSerializableParameter.getExample-421] Illegal DefaultValue null for parameter type integer java.lang.NumberFormatException: For input string: "" at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67) at java.base/java.lang.Long.parseLong(Long.java:721)..
2022.06.30