일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- AOP
- 알고리즘
- springdatajpa
- Greedy
- 인프런
- pointcut
- transaction
- QueryDSL
- 스프링 핵심 원리
- 스프링
- Spring Boot
- jpa
- 백준
- SpringBoot
- Servlet
- kotlin
- 그리디
- JPQL
- 김영한
- http
- JDBC
- java
- 자바
- Android
- 스프링 핵심 기능
- spring
- Exception
- db
- Thymeleaf
- Proxy
- Today
- Total
목록인프런/[인프런] 스프링 MVC 2 (102)
개발자되기 프로젝트
1. 요구사항 요구사항 상품을 관리 상품 이름 첨부파일 하나 이미지 파일 여러개 첨부파일을 업로드 다운로드 할 수 있다. 업로드한 이미지를 웹 브라우저에서 확인할 수 있다. 2. Item 상품 도메인 import lombok.Data; import java.util.List; @Data public class Item { private Long id; private String itemName; private UploadFile attachFile; private List imageFiles; } 3. itemRepository @Repository public class ItemRepository { private final Map store = new HashMap(); private long seq..
스프링은 MultipartFile 이라는 인터페이스로 멀티파트 파일을 지원 1. SpringUploadController @Controller @Slf4j @RequestMapping("/spring") public class SpringUploadController { @Value("${file.dir}") private String fileDir; @GetMapping("/upload") public String newFile(){ return "upload-form"; } @PostMapping("/upload") public String saveFile(@RequestParam String itemName, @RequestParam MultipartFile file, HttpServletReque..
1. 파일 저장 경로 지정. 서블릿이 제공하는 Part 에 대해 알아보고 실제 파일도 서버에 업로드 해보자. 먼저 파일을 업로드를 하려면 실제 파일이 저장되는 경로가 필요하다. application.properties : 경로 끝에 / 추가 필요. file.dir=C:/Users/계정/..../file/ 2. Controller @Slf4j @Controller @RequestMapping("/servlet/v2") public class ServletUploadControllerV2 { @Value("${file.dir}") private String fileDir; @GetMapping("/upload") public String newFile(){ return "upload-form"; } @Pos..
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..