본문 바로가기

Error Handling Spring MVC 에서는 기본 error 페이지를 제공하지 않아 SimpleMappingExceptionResolver 를 사용해야 하지만, Spring Boot 는 기본적으로 BasicErrorController 를 설정하여 모든 error 를 처리하는 /error 매핑을 제공하며, 서블릿 컨테이너에 전역 error 페이지로 등록된다. 예로, Thymeleaf 를 사용할 경우 /error 와 매핑되는 페이지는 src/main/resources/templates/error.html 가 될 것이다.시스템 클라이언트의 경우, HTTP 상태, error, 메시지를 담은 JSON 형식으로 응답한다. 브라우저 클라이언트의 경우, 위와 동일한 데이터를 HTML 형식으로 렌더링한 /error 페이지로 응답할 것이며..
Type-safe Configuration Properties @Value 대신에 속성들의 타입을 명시하여 아래와 같이 @ConfigurationProperties 를 선언할 수 있다.아래는 @ConfigurationProperties 로부터 사용자 메타데이터 파일을 쉽게 생성할 수 있도록 spring-boot-configuration-processor 종속성을 가져와서 properties 작성, getter/setter 정의, getter 를 사용하는 순으로 properties 의 속성값을 가져오는 예이다.- propertiesacme.enabled=falseacme.remote-address=192.168.1.234...acme.security.username=abcacme.security.password=efg...cs- build.gradledependenc..
Spring properties Spring Boot 사용시 특정 속성들을 별도로 만들어(외부화) 다른 환경에서도 동일하게 코딩을 할 수 있다.일반적으로 공통적으로 사용되는 속성들을 정의하거나, 개발 환경(prod/dev) 등을 구분하고자 할 때 주로 사용된다.그 방법으로 properties 파일이나, YAML 파일, 환경변수 및 명령행 인수 등을 사용할 수 있으며, 워낙 다양한 방법들이 있다보니 중복되거나 하는 속성 값들에는 PropertySource 우선 순위가 작용한다.~/.spring-boot-devtools.properties (devtools가 활성화시)@TestPropertySource (테스트시)@SpringBootTest (테스트시)Command line 파라미터SPRING_APPLICATION_JSON 속성 (환경 변..
Spring Boot Devtools devtools 는 이름처럼 어플리케이션 개발시 유용한 기능들을 포함하고 있는 Spring Boot 모듈이다.개발 도중 결과를 확인하기 위해 build 를 수동으로 실행하고 브라우저를 새로고침 하여 결과를 확인하는 동작을 자동화하는 것이 특히 유용하다.gradle 에서 devtools 를 사용하려면 dependency 에 아래처럼 한 줄만 추가한다.dependencies { developmentOnly("org.springframework.boot:spring-boot-devtools")}Colored by Color Scriptercs그리고 IDE 마다 설정이 약간씩 틀린데 어플리케이션 실행 중 자동 빌드에 관련한 옵션을 설정한다. (아래: Intellij)File -> Settings [Ctrl-Al..
Main 클래스의 위치 일반적으로 프로젝트의 Main 클래스(main 메소드를 정의하는 클래스) 는 다른 클래스보다 상위에있는 루트 패키지(아래 예에서 com/example/myapplication) 에 배치하는 것이 좋다. @SpringBootApplication 어노테이션은 주로 Main 클래스에 배치되며 특정 항목에 대한 기본 "패키지 검색" 을 암시적으로 정의한다. 예를 들어 JPA 프로젝트를 작성하는 경우 @SpringBootApplication 어노테이션이 정의된 클래스의 패키지를 사용하여 @Entity 항목을 검색한다. 루트 패키지를 사용하면 component scan 을 프로젝트에만 적용할 수도 있다.@SpringBootApplication 은 @EnableAutoConfiguration / @ComponentS..
Spring Boot with Gradle Spring BootSpring Boot 는 production 급의 독립형 Spring 어플리케이션을 쉽게 만들 수 있으며, spring 설정이 거의 필요없다.(고 하지만 이거슨 거짓말! ㅜ)아래는 간략한 Spring Boot 의 특징이다.독립 실행형 Spring 어플리케이션 생성.Tomcat, Jetty, Undertow 등의 WAS 포함. (WAR 파일 배포 불필요)자동으로 Spring 설정.상태 확인, 측정 및 외부 구성과 같은 production 기능을 제공.코드를 생성하거나, XML 설정 파일이 불필요.Spring Boot Gradle PluginSpring Boot 2.0 이상에서 gradle 로 시작하려 할 때, Spring Boot Gradle Plugin 을 사용하려면 Gradle 4...