Programming/Springboot 13

[Spring boot] Spring boot Exception 처리 참고 사이트

Spring에서 Exception 처리하는 범위를 3가지로 나눌 수 있어요. 3가지 범위에서 사용되는 어노테이션과 사용 방법은 간단하게 설명하면 아래와 같아요. 1. 메소드 단위 : try/catch 2. Controller 단위 : @ExceptionHandler 3. 전역 처리 : @ControllerAdvice 자세한 예제가 궁금하다면 아래 사이트 참고해주세요. Spring boot exception handling – @ExceptionHandler example 스프링부트. @ControllerAdvice를 이용한 HTML과 JSON 요청에 대한 예외 처리 Spring Boot, ExceptionHandler, 전역 예외 처리 로직 작성하기 [spring] 서블릿 에러 핸들링 - 3 (@Cont..

[Springboot] Docker 연동

1. spring project 준비 - intellij 기준으로 프로젝트 초기화 - 프로젝트 생성 2. web test를 위한 간단한 코드 작성 1) pom.xml 4.0.0 org.springframework.boot spring-boot-starter-parent 2.4.2 com.example spring-docker-demo 0.0.1-SNAPSHOT spring-docker-demo Demo project for Spring Boot 11 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-mav..

[springboot] @PostContruct @PreDestory @Value

springboot의 어노테이션 중 @PostContruct,@PreDestory,@Value 개념 정리를 해보았다. @PostConstruct - 객체 초기화때 사용 - @PostConstruct 어노테이션은 의존하는 객체를 설정한 이후에 초기화 작업을 수할 메서드에 적용됨. - WAS가 띄어질때 한번만 실행된다. (bean lifecycle에서 오직 한번만 수행하여 여러번 초기화하는 것을 방지한다.) - 사용법은 초기화하고 싶은 메서드 위에 @PostConstruct 어노테이션만 붙여주면 된다. @PreDestory - 마지막 소멸단계에서 사용 - @PreDestory어노테이션은 스프링 컨테이너에서 객체(빈)를 제거하기 전에 해야할 메소드에 적용됨. - 사용법은 제거할 메소드 위에 @PreDestor..

[Springboot] @DateTimeFormat @JsonFormat

이번 글에서는 @DateTimeFormat과 @JsonFormat 의 차이에대해서 알아보겠습니다. @DateTimeFormat는 Spring에서 제공하는 어노테이션이구요, @JsonFormat 은 Jackson에 제공하는 어노테이션인데요, 테스트를 위해서 @Test 어노테이션을 선언한 함수를 생성해주고요. @Test public void localdate_test() throws Exception { // String content = objectMapper.writeValueAsString(new RequestSetterDto("jojoldu", 1000L, LocalDate.of(2019,2,22), RequestSetterDto.RequestType.GET)); String content = obj..

[Springboot] springfox-swagger 3.0.0 example

swagger는 OpenAPI 스펙을 기준으로 문서화 하여 HTML 페이지를 자동으로 만들어주는 오픈소스 프레임워크다. RESTful API 설계 및 문서화하여 공유가 필요할 때 자주 사용된다. 자세한 내용은 springfox document 홈페이지에서도 확인이 가능하다. 아래 간단한 예제를 통해 더 자세히 알아보자. 예제 프로젝트 구성은 아래 그림과 같다. 라이브러리 추가 restful api와 swagger 적용을 위해 아래의 라이브러리를 추가해준다. swagger관련 라이브러리는 3.0.0 버전으로 설정했다. 주의해야할 점은 2.x.x 버전은 swagger ui를 불러올 때, 사용하는 URL이 다르기 때문에, 버전은 꼭 확인이 필요하다. pom.xml .... org.springframework...

[Cassandra] Cassandra Unit Test - Junit5

카산드라 단위테스트 junit5를 활용하여 카산드라 단위테스트를 진행하려고 했지만, cassandra db는 따로 연결해 주어야하는 듯 싶다. 혹시나 다른 방법이 있다면 피드백 부탁드려요! 카산드라를 단위 테스트에 사용하기 위해 cassandra unit 라이브러리를 추가해주었다. org.cassandraunit cassandra-unit-spring 2.2.2.1 그리고 test 파일에 @BeforeClass 주입된 클래스에 아래의 간단한 내용을 추가해준다. .... @BeforeClass public static void startServer() throws InterruptedException, TTransportException, ConfigurationException, IOException {..

[Springboot] Spring boot Java 1.8 Time 적용

springboot에서 java8 time을 사용하여 get 요청을 해오는 방법에 대해서 알아보자 테스트 코드 먼저 컨트롤러 및 DTO 클래스를 생성한다. TimeController.class package com.example.demo; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; /** * The Class TimeController. */ @RestController public class TimeController { @GetMapping("/test") public TestDTO getTestDTO(TestDTO testDT..

[Springboot] 메이븐 빌드 -DskipTests 옵션

메이븐 명령어 실행 시, 아래와 같은 test 라이브러리 관련 Warning이 발생하였다. Warning이긴 하지만, 신경이 쓰인다.... 원인은 test 실행시, mariadb에 대한 테스트도 진행할 때 연결 정보가 없거나 연결할 때 문제시 이러한 Warning이나 error가 발생하는 것이다. 해결방법은 -DskipTests 옵션을 사용하여 db 관련한 테스트는 제외하고 진행하면 된다. mvn install -DskipTests 옵션을 적용하면 DB 테스트를 건너뛰기 때문에, 정상적으로 빌드되는것을 확인할 수 있다.

[springboot][intelliJ] JPA Cannot resolve table ' '

IntelliJ 개발환경에서 Springboot + MariaDB 작업 중, Cannot resolve table ' customer' 에러가 발생했다. 이런 현상은 IntelliJ가 너무 꼼꼼하게 검사를 해주기 때문에 발생한 것으로, 관련 설정을 변경해주면 해결 된다. Setting > Editor > Inspection > .. > Unresolved database references in annotations 체크 해제 적용 후 확인하면 아래와 같이 빨간줄이 지워진다.

[Springboot] WARN - Unable to start LiveReload server

현상 Spring boot 실행시 아래와 같은 Warning이 발생하여 원인을 찾아보았더니, 원인은 스프링 부트 응용 프로그램을 동시 실행하고 있을때 주는 경고였다. 2017-08-14 12:23:23.609 WARN 2356 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : Unable to start LiveReload server 해결방법 어플리케이션 하는 동안 서로 영향을 주지 않게 하려면 config 파일(yaml)에 옵션을 추가해주면 된다. spring.devtools.livereload.enabled: false 아래는 관련 내용의 SpringBoot Reference이다.