더북(TheBook)

 

이 장에서 다루는 내용

자동 구성된 빈을 오버라이드하는 방법

외부 프로퍼티를 이용하여 구성하는 방법

오류 페이지를 사용자화하는 방법

 

 

자유롭게 선택을 할 수 있다는 것은 멋진 일이다. 피자를 주문한 적이 있다면 피자 도우에 올리는 토핑을 원하는 대로 고를 수 있다는 것을 안다. 소시지, 페퍼로니, 피망, 추가로 치즈를 토핑해 달라고 주문했다면 본질적으로 원하는 피자를 ‘구성’한 것이다.

한편 피자는 대부분 토핑을 ‘자동 구성’하여 제공한다. 불고기 피자, 야채 피자, 매콤한 이탈리안 피자나 자동 구성된 피자 중에서 최고인 슈프림 피자를 주문할 수도 있다. 그중 하나를 주문할 때 우리는 피자에 올릴 토핑을 일일이 이야기하지 않아도 된다. 주문한 피자 종류에서 이미 어떤 토핑을 사용할지 알 수 있기 때문이다.

하지만 슈프림 피자 토핑에 할라페뇨*를 추가하고 버섯은 빼고 싶다면? 매운 것을 좋아하고 버섯류는 좋아하지 않는다면 자동 구성된 피자를 주문할 수 없으므로 원하는 피자를 따로 주문해야 할까? 당연히 그렇지 않다. 대다수 피자가게에서는 원하는 대로 피자를 주문할 수 있고, 메뉴에 있는 피자도 원하는 대로 바꿀 수 있다.

기존 스프링 구성은 토핑을 일일이 지정하여 피자를 주문하는 것과 같았다. 스프링 구성을 모두 제어할 수 있다고 해도 애플리케이션의 모든 빈을 일일이 정의하는 것이 최선은 아니다. 반면에 스프링 부트의 자동 구성은 메뉴에 있는 피자를 토대로 특별한 피자를 주문하는 것과 비슷하다. 스프링 부트가 상세한 부분을 제어할 수 있으므로 애플리케이션 컨텍스트에서 사용할 빈을 모두 직접 선언하는 것보다 쉽다.

다행히 스프링 부트 자동 구성은 유연하다. 피자가게에서 피자에 버섯을 빼고 할라페뇨를 추가할 수 있듯이, 스프링 부트는 여러분이 자동 구성에 개입하여 구성에 영향을 줄 수 있게 한다.

이 장에서는 자동 구성에 영향을 줄 수 있는 두 가지 방법을 살펴본다. 스프링 부트가 미리 구성한 빈을 명시적으로 오버라이드하는 방법과 프로퍼티로 세밀하게 구성하는 방법을 알아보자. 또 스프링 부트가 제공하는 후크로 사용자 정의 오류 페이지를 끼워 넣는 방법도 알아보자.

*  멕시코 요리에 사용하는 아주 매운 고추

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.