
intellij 의 단축키 command + o를 누르면 클래스들을 검색해 볼 수 있다. Formatter를 검색하면 여러 포메터들이 보인다. 그 중에 스프링 것을 열어서 구현체를 확인해 보면 (왼쪽 초록 버튼) 수 많은 구현체들을 확인 해볼 수 있다.. 이전 글에서는 포메터를 등록하고, 단 한가지의 방식으로 이쁘게 포멧을 해줬었다. (예 : 10,000) 하지만 여러 형식으로 표현하고 싶을 때는 여러개를 등록해야하니 표현하기가 어려워진다. 그것을 편하게 하기 위해 스프링에서 지원하는 것이 있다. 스프링이 제공하는 기본 포맷터 스프링은 자바에서 기본으로 제공하는 타입들에 대해 수 많은 포맷터를 기본으로 제공한다. IDE에서 Formatter 인터페이스의 구현 클래스를 찾아보면 수 많은 날짜나 시간 관련 ..

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 또..
- Total
- Today
- Yesterday
- ArgumentResolver
- Java
- exception
- SpringBoot
- react실행
- rejectValue
- thymleaf
- hypertexttransferprotocol
- 컨트
- JPA
- 리터럴
- jpa api
- 인터셉터
- reject
- 백엔드 개발자 역량
- 향해플러스백엔드
- 향해플러스
- Intercepter
- 항해99
- 향해99
- 스프링부트
- 백엔드 개발자 공부
- 예외처리
- filter
- 로그인
- 항해플러스
- HTTP
- 스프링공부
- BindingResult
- React
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |