본문 바로가기
관리자

Programming-[Backend]/Spring

(76)
[TIL][작성중]RestTemplate 사용하기 참조 링크 https://blog.naver.com/hj_kim97/222295259904 https://tecoble.techcourse.co.kr/post/2021-07-25-resttemplate-webclient/ https://sjh836.tistory.com/141 -------------- REST Template으로 GET을 보내야하는데 header값을 추가하고 싶다면 exchange 메서드를 활용해야한다. https://stackoverflow.com/questions/21101250/sending-get-request-with-authentication-headers-using-resttemplate
[TIL][링크] 타임리프 부트스트랩 클래스 표 - grid options https://getbootstrap.com/docs/4.1/layout/grid/ col-sm, col-md 등과 같이 부트스트랩에서 제공하는 class 이름에 대한 설명이 있는 링크이다.
[TIL][링크] 트랜잭션의 전파, Spring @Transactional 중첩 참조 링크의 블로그에 너무 잘 정리되어 있어서 읽어보면 될 것 같다. 요약하자면 다음과 같다. 스프링에서는, @Transactional의 propagation 설정을 통해 트랜잭션의 전파를 설정할 수 있다. 1. REQUIRED 기본 설정은 REQUIRED이다. 트랜잭션A(부모) 내부에 트랜잭션B(자식)가 실행되는 경우, 트랜잭션A에 트랜잭션 B가 합류한다. 다시말해 커밋이나 롤백의 기준이 트랜잭션 A만 존재하는 경우와 같다. 아래는 자식 트랜잭션에 주는 속성을 소제목과 같이 바꿨을 때의 동작 방식을 설명한다. 2. REQUIRES_NEW A, B 개별 트랜잭션으로 취급한다. 각각 커밋과 롤백이 이루어진다. 3. MANDATORY 부모에 자식이 합류한다. 다만, 부모 트랜잭션이 없으면 에러가 발생한다. ..
[TIL][Thymeleaf] String null 처리 : #string.defaultString #strings의 메서드들을 사용하면 객체의 값이 null 일때 처리할 값을 지정할 수 있다. Elvis(?:) 문법을 써도 되지만, 여러 객체가 한 번에 표시될 때는 #strings의 메서드를 활용해야한다. 1 2 3 4 Colored by Color Scripter cs 이렇게 쓰면, 만약 4개의 값 중 세번째 값인 XxxEntity.attr.address.detail 값이 null일때는 , default로 빈 공백(' ')을 넣어준다. 참조 https://cizz3007.github.io/타임리프/syntax/thymeleaf/2018/04/10/thymeleaf2/
[스프링 웹MVC-2] 21. 업로드, 다운로드 기능 구현 예제 여러 개의 파일을 한 번에 업로드 하는 방법, 업로드 파일을 브라우저 상에서 확인하도록 하는 방법, 다운로드 하는 방법에 대해서 학습해본다. 기존 파일에 도메인 코드를 추가하여 진행한다. 각 메서드나 방법론 보다는 전체적인 파일 전송 방식에 대한 이해가 중요하다. 1. 도메인 생성 Item 클래스의 필드값은 상품의 이름, 다운로드할 수 있는 상품 이미지, 조회했을 때 표시되는 이미지 리스트를 필드값으로 한다. 그리고 업로드된 파일의 이름을 저장할 수 있도록 UploadFile 클래스를 만든다. java/hello/upload/domain/Item.java 1 2 3 4 5 6 7 8 9 @Data public class Item { private Long id; private String itemName..
[스프링 웹MVC-2] 20. 파일 업로드 1. 파일 전송 시 HTTP 작동 방식 보통 파일 업로드를 위해서 HTML Form을 이용한다. 이때, 아래 그림과 같이 단순 text를 보낼때는 x-www-form-urlencoded로 보내지만, text와 binary 데이터를 같이 보내야 하는 경우처럼 여러 타입의 데이터를 함께 보내야 하는 경우, multipart/form-data로 넘어가고 boundary, filename 등 부가적인 정보가 붙어서 HTTP 요청이 생성된다. 뒤에서 다루겠지만, boundary로 나눠진 부분들을 parts로 표현하며, request.getParts()로 각 부분을 얻을 수 있다. 이런 기본적인 내용을 숙지하였으니, 파일 업로드를 실습해보자. 2. 서블릿의 multipart 요청 정보 처리 multipart 요청 ..
[스프링 웹MVC-2] 19. 타입 컨버터 - Formatter 1. 포맷터(Fomatter)란? 지난 글에서 학습한 Converter의 세부적인 개념이다. 특히나 금액, 날짜와 같은 자주 쓰는 타입에 대해 지역 정보(Locale)를 바탕으로 객체 문자 간 특화된 변환을 지원한다. 스프링에서 제공하는 Formatter를 살펴보면 Printer, Parser 객체를 상속받는 것을 볼 수 있다. 각각의 메서드 중 print 메서드는 객체를 문자로 변경하고, parse 메서드는 문자를 객체로 변경하는 역할을 한다. 2. Formatter 사용 직접 사용해보기 Formatter를 사용하는 기본적인 방법에 대해 알아본다. 테스트 코드로 위에서 다룬 print, parse 메서드를 연습한다. org.springframework의 Formatter를 상속받고, 타입은 Number..
[스프링 웹MVC-2] 18. 타입 컨버터 - ConversionService HTTP 요청을 통해 서버로 넘어온 정보 중, 서버에서 원하는 타입이 아닌 정보가 있을 수 있다. 각 필드들을 원하는 타입으로 변환하는 자바 코드를 사용해도 되지만, 스프링에서 제공하는 타입 컨버터 기능을 사용하면 자동으로 타입 변환이 되도록 할 수 있을 뿐만 아니라 사용자 지정 타입의 필드값으로 변경할 수 있는 등 여러 가지 장점이 있다. 1. 프로젝트 생성 아래 사진과 같이 생성하고, 늘 했던 방식과 같이 Build는 intelliJ가 하도록, Encoding은 UTF-8형식, Annotation Processor를 사용할 수 있도록 설정해준다. 2. Converter 인터페이스 스프링의 기본 타입 변환 지원 스프링은 기본적인 타입 변환은 자동으로 지원한다. 아래 예시를 보자. helloV1 컨트롤러..