Java/SpringBoot
-
API 예외 처리Java/SpringBoot 2022. 8. 18. 17:24
기존 방식의 예외처리로는 API 요청 시 예외가 발생하지 않을 경우- 데이터가 정상적으로 반환되지만 예외가 발생하면- 오류 페이지를 반환한다. 그래서 오류 발생 시에도 JSON 형식의 데이터를 반환하도록 한다. API 응답 @RequestMapping(value = "/error-page/500", produces =MediaType.APPLICATION_JSON_VALUE) public ResponseEntity errorPage500Api(HttpServletRequest request, HttpServletResponse response) { log.info("API errorPage 500"); Map result = new HashMap(); Exception ex = (Exception) re..
-
파일 업로드Java/SpringBoot 2022. 8. 18. 17:12
Http form을 서버에 보낼때 여러 항목을 보내기 위해서 `multipart/form-data` 형식을 사용한다. 이를 통해 여러 파일과 폼의 내용을 함께 전송할 수 있다. 서블릿과 파일 업로드1 package hello.upload.controller; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.Req..
-
타입 컨버터Java/SpringBoot 2022. 8. 18. 17:11
Spring Type Converter @GetMapping("/hello-v2") public String helloV2(@RequestParam Integer data) { System.out.println("data = " + data); return "ok"; } url의 파라미터로 들어올때의 data는 문자열 형식인데 스프링의 @RequestParam을 거치면 문자가 정수 형식으로 들어온다. 스프링이 중간에서 타입 변환을 해주기 때문이다. 컨버터 인터페이스 구현 package hello.typeconverter.converter; import lombok.extern.slf4j.Slf4j; import org.springframework.core.convert.converter.Converter..
-
의존성 주입 Dependency Injection. DIJava/SpringBoot 2021. 2. 24. 16:12
클래스 의존 관계란? 한 클래스의 객체가 다른 클래스 객체의 서비스를 필요로 하는 관계. Driver 가 Car를 운전한다. Driver.java public class Driver{ Car car; public Driver(){ car = new Car(); } public void drive(){ car.engineOn(); car.go(); car.engineOff(); } } Car.java public class Car{ public void engineOn(){ System.out.println("car: engine on"); } public void go(){ System.out.println("car: brrrr"); } public void engineOff(){ System.out.p..
-
[Thymeleaf] 문법 정리Java/SpringBoot 2021. 1. 18. 21:39
1. 타임리프란? - HTML, XML, JS, CSS 등을 처리할 수 있는 server-side 자바 템플릿 엔진이자 스프링부트에서 공식으로 지원하는 템플릿 엔진이다. - 우아하고 유지보수성이 높은 템플릿 개발을 목표로 만들어졌다. 또한 HTML5 등의 web standard를 염두에 두고 개발되었다. 2. 기본 표현식 기본적인 표현: Variable Expressions: ${...} Selection Variable Expressions: *{...} Message Expressions: #{...} Link URL Expressions: @{...} Fragment Expressions: ~{...} 리터럴 Text literals: 'one text', 'Another one!',… Number..