
먼저 properties가 아닌 yml 파일을 사용한다. spring: #띄어쓰기 없음 datasource: #띄어쓰기 2칸 url: jdbc:h2:tcp://localhost/~/jpashop #4칸 username: sa password: driver-class-name: org.h2.Driver jpa: #띄어쓰기 2칸 hibernate: #띄어쓰기 4칸 ddl-auto: create #띄어쓰기 6칸 properties: #띄어쓰기 4칸 hibernate: #띄어쓰기 6칸 #show_sql: true #띄어쓰기 8칸 format_sql: true #띄어쓰기 8칸 logging.level: #띄어쓰기 없음 org.hibernate.SQL: debug #띄어쓰기 2칸 org.hibernate.type:..
View 환경 설정 **thymeleaf 템플릿 엔진** thymeleaf 공식 사이트: https://www.thymeleaf.org/ 스프링 공식 튜토리얼: https://spring.io/guides/gs/serving-web-content/ 스프링부트 메뉴얼: https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/ boot-features-developing-web-applications.html#boot-features-spring-mvc-template-engines 스프링 부트 thymeleaf viewName 매핑 `resources:templates/` +{ViewName}+ `.html` index는 static안에 ..
스프링 부트 라이브러리 살펴보기** - spring-boot-starter-web - spring-boot-starter-tomcat: 톰캣 (웹서버) - spring-webmvc: 스프링 웹 MVC - spring-boot-starter-thymeleaf: 타임리프 템플릿 엔진(View) - spring-boot-starter-data-jpa - spring-boot-starter-aop - spring-boot-starter-jdbc - HikariCP 커넥션 풀 (부트 2.0 기본) - hibernate + JPA: 하이버네이트 + JPA - spring-data-jpa: 스프링 데이터 JPA - spring-boot-starter(공통): 스프링 부트 + 스프링 코어 + 로깅 - spring-bo..
package hello.upload.controller; import hello.upload.domain.Item; import hello.upload.domain.ItemForm; import hello.upload.domain.ItemRepository; import hello.upload.domain.UploadFile; import hello.upload.file.FileStore; import lombok.Getter; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.core.io.Resource; import org.springframework.core.io.Ur..
package hello.upload.controller; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMap..
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..

기본적으로 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 결과로 만들어지는 숫자나 날짜 포맷을 변경하고 ..
- Total
- Today
- Yesterday
- 스프링부트
- 백엔드 개발자 역량
- BindingResult
- HTTP
- thymleaf
- 향해99
- rejectValue
- JPA
- Java
- 항해플러스
- 컨트
- filter
- 로그인
- 예외처리
- 향해플러스백엔드
- jpa api
- React
- hypertexttransferprotocol
- 향해플러스
- exception
- Intercepter
- SpringBoot
- 인터셉터
- 스프링공부
- 리터럴
- ArgumentResolver
- reject
- 항해99
- 백엔드 개발자 공부
- 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 |