SpringBoot parent가 기본적으로 들어오는데 이것은 스프링부트에서 제공하는 다양한 의존성을 묶어놓은 것을 상속받고 있기 때문에 모든 의존성이 한번에 버전과 함께 들어오는 것.
왜 좋은가 ? 기존에 우리가 직접 관리하는 경우 의존성 충돌이 굉장히 자주 일어났는데 Spring boot 가 직접관리해줌으로써 이러한 충돌이 굉장히 줄어들었음.
물론 이 경우에도 자신의 의존성을 만들고 싶다면 Dependency Mangement 를 참고해서 변경할 수 있다. 이 방법보단 스프링이 기본 제공하는 의존성의 부모형태로 사용하는 것이 좋다.
버전을 명시적으로 의존성을 추가하는 것이 바람직하며 스프링이 버전을 제공하는 경우는 작성하지 않아도 된다.
Springboot 가 제공하는 버전을 변경하고 싶은 경우 의존성에 작성하면 Overriding을 통해 가능하다.
<properties>
<spring.version>5.0.6.RELEASE</spring.version>
</propeties>
설정과 관련된 파일은 일반적으로 .properties 라는 파일에 작성하는 것이 일반적인데 이러한 파일에는 우선순위가 존재한다. 뿐만 아니라 type-safe하게 관리하기 위해서 빈으로 등록하여 자바코드로도 조작이 가능한데 이를 알아보자.
우선순위
java -jar target/...jar —spring.profiles.active =something2
와 같이 설정하는 경우 somthing2
의 프로파일로 프로그램이 동작한다.SpringBoot 는 기본적으로 Web MVC와 관련된 AutoConfiguration을 제공합니다. 이렇게 제공하고 있는 자동 설정이 존재하기 때문에 특별한 설정없이 바로 WebMVC를 사용할 수 있는데요. WebMvc가 제공하는 대표적인 혹은 스프링 Boot가 설정하여 작동시킨 MVC 의 기능과 내부동작을 일부 알아보도록 합시다.
Spring boot의 자동설정에 의해서 우리는 스프링 MVC 관련 설정을 하지 않아도 이미 사용할 수 있는 형태이다. 다만 MVC와 관련해서 추가적인 작업이나 설정이 필요하다면 아래와 같은 설정을 통해서 이를 가능하게 할 수 있다. 참고로 @EnableWeb 관련 어노테이션을 붙이면 기본 자동설정이 모두 사라지기 때문에 지양해야한다.
@Configuration
public class WebConfiguration implements WebMvcConfigurer
기본적으로 BasicErrorHandler 가 동작하여 에러페이지를 보여준다.
에러코드에 따라 다른 웹페이지를 보여주고 싶은 경우
Customizing한 에러를 보여주고 싶은 경우
예외를 던지고 해당 컨트롤러에서 @ExceptionHandler(Class.class) 를통해 처리할 수 있음.
부가적으로 에러에 대한 작업을 하고싶은 경우 ErrorViewResolver를 구현하여 오버라이딩을 통해 사용가능.
spring.jpa.generate-ddl=true
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=
Spring boot가 기본적으로 제공하는 admin page
서버용 프로젝트와 실제 프로젝트가 필요하다.
서버용
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.0.1</version>
</dependency>
클라이언트용
spring.boot.admin.client.url = "localhost:8080"
de.codecentric spring-boot-admin-starter-client 2.0.1