
회사 프로젝트 중에 전자정부프레임워크에서 Spring boot로 마이그레이션을 한다고 한다. 아마 설계는 내가 진행하지 않겠지만, 일단 환경 자체는 알아야 할 것 같아서 셋팅을 진행했다. 보통 spring boot환경에서는 front는 SPA를 api통신해서 사용하거나 thymleaf를 사용하는데 고객사의 제작비 절감..?으로 인해 기존 jsp를 그대로 가져가게 되었다. 처음보는 환경이라 어떤 설정이 필요한지 진행했다.Spring Boot에서 JSP 사용1. Spring boot 프로젝트 generatehttps://start.spring.io/ 평소와 같이 start.spring.io에서 boot를 생성 해주었다. jdk17, Maven, war로 설정해주었다. 일단 기본으로 받고 dependency를..
일단 boot를 받는 것을 똑같다. https://start.spring.io/ 여기에서 Maven과 War 설정으로 받아준다. application.propertiesspring.mvc.view.prefix=/WEB-INF/views/spring.mvc.view.suffix=.jsp pom.xml 추가 jstl jstl 1.2 org.apache.tomcat.embed tomcat-embed-jasper tomcat-embed-jasper를 사용하지 않으면 jsp가 돌아가지 않는 현상이 보였다.스프링 부트의 내장 톰캣이 JSP를 지원하도록 해주는 의존성이라고 한다.Tomcat의 내장 JSP 컴파일러인 Jasper를 사용할 수 있도록 한다.
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 결과로 만들어지는 숫자나 날짜 포맷을 변경하고 ..

intellij 의 단축키 command + o를 누르면 클래스들을 검색해 볼 수 있다. Formatter를 검색하면 여러 포메터들이 보인다. 그 중에 스프링 것을 열어서 구현체를 확인해 보면 (왼쪽 초록 버튼) 수 많은 구현체들을 확인 해볼 수 있다.. 이전 글에서는 포메터를 등록하고, 단 한가지의 방식으로 이쁘게 포멧을 해줬었다. (예 : 10,000) 하지만 여러 형식으로 표현하고 싶을 때는 여러개를 등록해야하니 표현하기가 어려워진다. 그것을 편하게 하기 위해 스프링에서 지원하는 것이 있다. 스프링이 제공하는 기본 포맷터 스프링은 자바에서 기본으로 제공하는 타입들에 대해 수 많은 포맷터를 기본으로 제공한다. IDE에서 Formatter 인터페이스의 구현 클래스를 찾아보면 수 많은 날짜나 시간 관련 ..
- Total
- Today
- Yesterday
- filter
- 향해99
- React
- ArgumentResolver
- 컨트
- thymleaf
- rejectValue
- 항해플러스
- HTTP
- 백엔드 개발자 공부
- reject
- exception
- 예외처리
- hypertexttransferprotocol
- 향해플러스백엔드
- JPA
- 로그인
- Java
- 스프링공부
- 향해플러스
- BindingResult
- Intercepter
- 리터럴
- react실행
- jpa api
- 스프링부트
- 백엔드 개발자 역량
- 항해99
- SpringBoot
- 인터셉터
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |