package hello.typeconverter; import hello.typeconverter.converter.IntegerToStringConverter; import hello.typeconverter.converter.IpPortToStringConverter; import hello.typeconverter.converter.StringToIntegerConverter; import hello.typeconverter.converter.StringToIpPortConverter; import hello.typeconverter.formatter.MyNumberFormatter; import org.springframework.context.annotation.Configuration; im..
숫자 1000을 1,000모양으로 깔끔하게 표현하고 싶다면 포메터를 사용하면 된다. 또한 숫자 1000을 String으로 바꿔준다. package hello.typeconverter.formatter; import lombok.extern.slf4j.Slf4j; import org.springframework.format.Formatter; import java.text.NumberFormat; import java.text.ParseException; import java.util.Locale; @Slf4j public class MyNumberFormatter implements Formatter { @Override public Number parse(String text, Locale locale..
package hello.typeconverter.controller; import hello.typeconverter.type.IpPort; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; @Controller public class ConverterController { @GetMapping("/converter-view") public String converterView(Model model){ model.addAttribute("number",10000); model.addAttribu..
WebConfig에 Converter를 등록해준다. package hello.typeconverter; import hello.typeconverter.converter.IntegerToStringConverter; import hello.typeconverter.converter.IpPortToStringConverter; import hello.typeconverter.converter.StringToIntegerConverter; import hello.typeconverter.converter.StringToIpPortConverter; import org.springframework.context.annotation.Configuration; import org.springframework.fo..
public interface ConversionService { boolean canConvert(@Nullable Class sourceType, Class targetType); boolean canConvert(@Nullable TypeDescriptor sourceType, TypeDescriptor targetType); T convert(@Nullable Object source, Class targetType); Object convert(@Nullable Object source, @Nullable TypeDescriptor sourceType, TypeDescriptor targetType); } 해당 인터페이스를 이용하려한다 package hello.typeconverter.conve..
package hello.typeconverter.converter; import hello.typeconverter.type.IpPort; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; public class ConverterTest { @Test void stringToInterger(){ StringToIntegerConverter converter = new StringToIntegerConverter(); Integer result = converter.convert("10"); Assertions.assertThat(result).isEqualTo(10); } @Test void IntegerToString..
@ControllerAdvice @ControllerAdvice 는 대상으로 지정한 여러 컨트롤러에 @ExceptionHandler , @InitBinder 기능을 부여해주는 역할을 한다. @ControllerAdvice 에 대상을 지정하지 않으면 모든 컨트롤러에 적용된다. (글로벌 적용) @RestControllerAdvice 는 @ControllerAdvice 와 같고, @ResponseBody 가 추가되어 있다. @Controller , @RestController 의 차이와 같다. 이전 글에서는 특정 컨트롤러에서 @ExceptionHandler 어노테이션으로 예외를 처리를 했을 경우에 해당 컨트롤러의 안의 맵핑 된 주소가 있을 경우에만 예외처리가 되었다. 하지만 @ControllerAdvice 또..
@ExceptionHandler 스프링은 API 예외 처리 문제를 해결하기 위해 @ExceptionHandler 라는 애노테이션을 사용하는 매우 편리한 예외 처리 기능을 제공하는데, 이것이 바로 ExceptionHandlerExceptionResolver 이다. 스프링은 ExceptionHandlerExceptionResolver 를 기본으로 제공하고, 기본으로 제공하는 ExceptionResolver 중에 우선순위도 가장 높다. 실무에서 API 예외 처리는 대부분 이 기능을 사용한다 컨트롤러에서 오류가 터지면 먼저 디스패처에 다시 간다음 ExceptionHandler가 호출 된다. 그 중 가장 먼저 호출되는 것은 ExceptionHandlerExceptionResolver이다. /* * Copyrigh..
- Total
- Today
- Yesterday
- 인터셉터
- 향해플러스백엔드
- exception
- 백엔드 개발자 공부
- 항해99
- Intercepter
- 향해플러스
- jpa api
- SpringBoot
- 항해플러스
- HTTP
- 백엔드 개발자 역량
- BindingResult
- Java
- JPA
- 스프링부트
- React
- reject
- thymleaf
- rejectValue
- 스프링공부
- 예외처리
- react실행
- hypertexttransferprotocol
- filter
- ArgumentResolver
- 리터럴
- 컨트
- 향해99
- 로그인
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |