package hello.upload.controller; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.Part; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.util.StreamUtils; import org.springframework.util.StringUtils; import or..
시작 전 logging.level.org.apache.coyote.http11=debug application.properties에 해당 코드를 넣으면 http메세지를 모두 확인 할 수 있다. package hello.upload.controller; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.Part; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.Get..
기본적으로 form에서 값을 보낼 때에 컨텐츠 타입은 디폴트로 application/x-www-form-urlencoded가 기본이 된다. key와 value로 나눠지며 만약 인풋박스에 name이 username이 있다면 username=kim 이런 식의 값을 보내게 된다. 만약 첨부파일을 보내려할 때에는 보통 이런 텍스트 인풋박스와 첨부파일이 한개의 form에 함께 있는 경우가 있다. 함께 전송하기 위해서는 content-type을 multipart/form-data로 변경시킬 필요가 있다. http메시지를 보면 boundary코드에 맞춰 총 3개가 들어간다. 각각 content-dispotion이라는 분류에 맞춰 헤더, 바디 로 들어가게 된다.(content-disposition 줄이 헤더, 값은 바..
정리 컨버터를 사용하든, 포맷터를 사용하든 등록 방법은 다르지만, 사용할 때는 컨버전 서비스를 통해서 일관성 있게 사용할 수 있다. 주의! 메시지 컨버터( HttpMessageConverter )에는 컨버전 서비스가 적용되지 않는다. 특히 객체를 JSON으로 변환할 때 메시지 컨버터를 사용하면서 이 부분을 많이 오해하는데, HttpMessageConverter 의 역할은 HTTP 메시지 바디의 내용을 객체로 변환하거나 객체를 HTTP 메시지 바디에 입력하는 것이다. 예를 들어서 JSON을 객체로 변환하는 메시지 컨버터는 내부에서 Jackson 같은 라이브러리를 사용한다. 객체를 JSON으로 변환한다면 그 결과는 이 라이브러리에 달린 것이다. 따라서 JSON 결과로 만들어지는 숫자나 날짜 포맷을 변경하고 ..
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..
컨버전 서비스에는 컨버터만 등록 할 수 있다. 포메터는 등록할 수 없다. 하지만 포메터는 객체 -> 문자, 문자 -> 객체로 변환하는 특별한 컨버터 일 뿐이다. 그래서 포메팅컨버젼서비스에 등록해서 사용 할 수 있다. package hello.typeconverter.formatter; import hello.typeconverter.converter.IpPortToStringConverter; import hello.typeconverter.converter.StringToIntegerConverter; import hello.typeconverter.converter.StringToIpPortConverter; import hello.typeconverter.type.IpPort; import org...
숫자 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..
- Total
- Today
- Yesterday
- Intercepter
- 리터럴
- hypertexttransferprotocol
- BindingResult
- jpa api
- 스프링공부
- JPA
- 향해플러스백엔드
- SpringBoot
- ArgumentResolver
- 백엔드 개발자 역량
- 향해99
- 항해99
- thymleaf
- React
- filter
- 항해플러스
- 예외처리
- 스프링부트
- exception
- react실행
- Java
- rejectValue
- 향해플러스
- 로그인
- 컨트
- reject
- 백엔드 개발자 공부
- HTTP
- 인터셉터
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |