Spring Boot
-
[Spring Boot] 에러 메시지 처리 (Custom Exception)Spring Boot/기타 2022. 6. 6. 13:07
1. build.gradeplugins { id 'org.springframework.boot' version '2.7.0' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java'}group = 'com.example'version = '0.0.1-SNAPSHOT'sourceCompatibility = '11'repositories { mavenCentral()}dependencies { // spring-boot-starter 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-validation' implementation..
-
[Spring Boot] MockMvc 사용 시 한글이 깨지는 현상Spring Boot/기타 2021. 8. 29. 16:33
[원인] Spring Boot 2.2.0.RELEASE 부터 MediaType.APPLICATION_JSON_UTF8 Deprecated 되어 Content-Type: application/json;charset=UTF-8 요청에 대해 Content-Type: application/json 으로 응답하여 한글이 깨지는 현상이 발생합니다. [해결 방법] MockMvc 빌드 시 CharacterEncodingFilter 추가 @Autowiredprivate MockMvc mockMvc;@Autowiredprivate WebApplicationContext ctx;// JUnit5(@BeforeEach), JUnit4(@Before)@BeforeEachpublic void setup() { this.mockM..
-
[Spring Boot] JPA 게시판 만들기(3) - JPA Auditing 설정Spring Boot/2.3.x - JPA 게시판 만들기 2020. 7. 20. 16:08
일반적으로 테이블을 설계할 때 데이터의 생성시간과 수정시간 컬럼을 포함하는데, JPA Auditing을 사용하면 생성시간과 수정시간을 자동으로 관리할 수 있습니다.1.BaseTimeEntity 구현com.rest.api.common.domain 패키지를 생성한 후 BaseTimeEntity 클래스르 추가하세요.BaseTimeEntity.java 더보기 123456789101112131415161718192021222324252627package com.rest.api.common.domain; import java.time.LocalDateTime; import javax.persistence.Column;import javax.persistence.EntityListeners;import j..
-
[Spring Boot] JPA 게시판 만들기(2) - API 테스트 코드 구현Spring Boot/2.3.x - JPA 게시판 만들기 2020. 7. 20. 15:19
@SpringBootTest와 TestRestTemplate를 사용하여 게시글을 조회, 등록, 수정, 삭제하는 API 테스트하는 코드를 구현하겠습니다.BoardControllerTest.java 더보기 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129..
-
[Spring Boot] JPA 게시판 만들기(1) - 기본 설정 및 CRUD 구현Spring Boot/2.3.x - JPA 게시판 만들기 2020. 6. 25. 11:32
Spring Data Jpa와 H2 Database를 사용하여 게시글을 조회, 등록, 수정, 삭제하는 API를 구현하겠습니다. 1.Dependency 설정pom.xml더보기 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980?xml version="1.0" encoding="UTF-8"?>project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xs..
-
[Spring Boot] REST API 만들기(15) - Lombok 적용Spring Boot/2.4.x - REST API 만들기 2020. 6. 3. 17:55
Lombok은 DTO, VO, Entity 관련 클래스 생성 시 Getter, Setter, ToString 메서드 등 반복되는 코드를 어노테이션으로 대체하여 컴파일 시에 코드를 생성해주는 자바 라이브러리입니다. 1. 의존성 추가pom.xml에 Lombok에 대한 의존성을 추가하세요.pom.xml더보기1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121..
-
[Spring Boot] REST API 만들기(14) - Swagger 적용Spring Boot/2.4.x - REST API 만들기 2020. 5. 22. 19:27
API 애플리케이션을 구현할 때 API 목록을 HTML 화면으로 문서화하기 위해 방법으로 Swagger가 있습니다. SpringBoot에서 Swagger를 사용하면, 컨트롤러에 적용된 어노테이션을 해석하여 문서화할 수 있습니다.1. 의존성 추가pom.xml에 Swagger에 대한 의존성을 추가하세요.pom.xml 더보기123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108?xm..
-
[Spring Boot] REST API 만들기(13) - 예외 처리 및 테스트Spring Boot/2.4.x - REST API 만들기 2020. 5. 21. 16:48
스프링 MVC에서는 애플리케이션에서 발생하는 예외를 처리할 때는 @ExceptionHandler 어노테이션과 @ControllerAdvice 어노테이션을 사용합니다. @ExceptionHandler은 전체 애플리케이션의 예외 처리를 하지 못하기 때문에, 전체 애플리케이션의 예외 처리가 가능하고, ReponseEntity 형식을 사용할 수 있는 @ControllerAdvice 어노테이션을 이용해서 예외 처리를 하도록 하겠습니다. 1. ResourceNotFoundException.java 추가자원을 찾을 수 없다는 예외를 처리하기 위해 com.spring.board.exception 패키지를 생성한 후 ResourceNotFoundException 클래스를 추가하세요.ResourceNotFoundExcep..
-
[Spring Boot] REST API 만들기(12) - Content Negotiation 설정Spring Boot/2.4.x - REST API 만들기 2020. 5. 20. 17:46
REST에서는 하나의 리소스에 대해서 여러 형태의 Representation을 가질 수 있습니다. 어떤 요청을 처리할 때 응답을 application/json 형태로 할 수도 있고, application/xml 형태로 할 수도 있습니다. 클라이언트가 요청을 전달할 때 HTTP Header 중에서 Accept라는 이름을 이용해서 원하는 응답 형태를 명시하면, 서버에서는 클라이언트가 원하는 형태로 결과를 전달합니다. 이러한 처리 과정을 Content Negotiation이라고 합니다. 1. WebMvcConfig.java 수정WebMvcConfigurer의 configureContentNegotiation를 이용해서 미디어 타입을 설정할 수 있습니다.WebMvcConfig.java더보기123456789101..
-
[Spring Boot] REST API 만들기(11) - JSON Root Element 추가Spring Boot/2.4.x - REST API 만들기 2020. 5. 20. 16:07
JSON과 XML 두 방식을 모두 사용하는 경우 기본적으로 JSON은 Root Element룰 사용하지 않아 데이터 형식이 다른 경우가 있습니다. 게시글 목록 조회 시에 JSON으로 응답받는 경우 Root Element가 적용되지 않은 것을 확인할 수 있습니다. 게시글 목록 조회 시(http://localhost:8080/board) JSON, XML 응답JSON더보기12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879{ "boards": [ { "boar..