일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Exception
- spring
- SpringBoot
- Proxy
- JPQL
- springdatajpa
- 스프링 핵심 기능
- Servlet
- 알고리즘
- Spring Boot
- 자바
- 스프링
- http
- QueryDSL
- java
- db
- 인프런
- jpa
- 백준
- pointcut
- transaction
- Android
- 스프링 핵심 원리
- AOP
- 그리디
- 김영한
- Thymeleaf
- kotlin
- JDBC
- Greedy
- Today
- Total
목록인프런 (528)
개발자되기 프로젝트
1. Controller @Slf4j @Controller @RequestMapping("/servlet/v1") public class ServletUploadControllerV1 { @GetMapping("/upload") public String newFile(){ return "upload-form"; } @PostMapping("/upload") public String saveFileV1(HttpServletRequest request) throws ServletException, IOException { log.info("request = {}", request); String itemName = request.getParameter("itemName"); log.info("itemName..
일반적으로 사용하는 HTML Form을 통한 파일 업로드를 이해하려면 먼저 폼을 전송하는 다음 두 가지 방식의 차이를 이해가 필요. 1. HTML Form 전송 방식 application/x-www-form-urlencoded multipart/form-data 2. application/x-www-form-urlencoded 방식 Form 태그에 별도의 enctype 옵션이 없으면 웹 브라우저는 요청 HTTP 메시지의 헤더에 다음 내용을 추가 Content-Type: application/x-www-form-urlencoded 그리고 폼에 입력한 전송할 항목을 HTTP Body에 문자로 username=kim&age=20 와 같이 & 로 구분해서 전송한다. 파일을 업로드 하려면 파일은 문자가 아니라 바..
스프링은 자바에서 기본으로 제공하는 타입들에 대해 수 많은 포맷터를 기본으로 제공 Formatter 인터페이스의 구현 클래스에는 수 많은 날짜나 시간 관련 포맷터가 제공됨. 그런데 포맷터는 기본 형식이 지정되어 있기 때문에, 객체의 각 필드마다 다른 형식으로 포맷을 지정하기는 어려움. 1. Spring 제공 Formatter @Annotaion 기반으로 원하는 형식을 지정 @NumberFormat : 숫자 관련 형식 지정 포맷터 사용, NumberFormatAnnotationFormatterFactory @DateTimeFormat : 날짜 관련 형식 지정 포맷터 사용, Jsr310DateTimeFormatAnnotationFormatterFactory 2. Controller @Controller pu..
WebApplication에 적용해보자. 1. Formmater 등록 addFormatters()를 사용하면됨. @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addFormatters(FormatterRegistry registry) { //StingInteger는 아래forammter에서 지원. converter가 우선순위 높음. //registry.addConverter(new StringToIntegerConverter()); registry.addConverter(new StringToIpPortConverter()); //registry.addConverter(new IntegerT..
Formatter를 등록해서 사용하자! Formatter를 지원하는 ConversionService를 사용하면 ConversionService에 Formatter 추가 가능. 내부에서 Adapter pattern을 사용해서 Formatter가 Converter처럼 동작하도록 지원. 1. FormattingConversionService 포맷터를 지원하는 컨버전 서비스 DefaultFormattingConversionService 는 FormattingConversionService 에 기본적인 통화, 숫자 관련 몇가지 기본 포맷터를 추가해서 제공 2. DefaultFormattingConversionService 의 상속관계 FormattingConversionService 는 ConversionServ..
Converter 는 입력과 출력 타입에 제한이 없는, 범용 타입 변환 기능을 제공 하지만 개발자는 문자를 다른 타입으로 변환하거나, 다른 타입을 문자로 변환하는 상황이 대부분이다. 문자를 다른 객체로 변환하거나 객체를 문자로 변환하는 일이 많음. 1. Web Application에서 객체 -> 문자, 문자 -> 객체 변환 예 화면에 숫자를 출력 Integer -> String 출력 시점에 숫자 1000 -> 문자 "1,000" 이렇게 1000 단위에 쉼표를 넣어서 출력하거나 또는 "1,000" 라는 문자를 1000 이라는 숫자로 변경해야 한다. 날짜 객체를 문자인 "2021-01-01 10:50:11" 와 같이 출력하거나 또는 그 반대의 상황 Locale 여기에 추가로 날짜 숫자의 표현 방법은 Loca..
Thymeleaf에 Converter를 적용해보자. 1. Controller @Controller public class ConverterController { @GetMapping("/converter-view") public String converterView(Model model){ model.addAttribute("number", 10000); model.addAttribute("ipPort", new IpPort("127.0.0.1", 8080)); return "converter-view"; } } 2. converter-view.html ${number}: ${{number}}: ${ipPort}: ${{ipPort}}: 기존과는 다르게 ${{...}}가 있다. ${number}: ${{..
1. Spring에 Converter 등록 addFormatters() 이용 @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addFormatters(FormatterRegistry registry) { registry.addConverter(new StringToIntegerConverter()); registry.addConverter(new StringToIpPortConverter()); registry.addConverter(new IntegerToStringConverter()); registry.addConverter(new IpPortToStringConverter()); } }..