Spring Boot
[SpringBoot] 구성 클래스
사악미소
2020. 11. 22. 18:03
스프링 부트는 자바 기반으로 구성한느 것을 선호한다.
아래 예제와 같이 XML 파일에 기존처럼 작성할 수도 있지만,
스프링 부트는 @Configuration 어노테이션을 부여한 클래스로 구성하는 것을 권장한다.
구성 클래스는 꼭 하나의 클래스로 만들 필요는 없다.
@Import 어노테이션을 사용하여 다른 구성을 로드할 수 있다.
아니면 @Configuration 어노테이션을 각 구성 클래스에 부여해 컴포넌트 스캔 기능으로 구성을 자동 설정하는 방법도 있다.
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
"
>
<context:component-scan base-package="com.sample.web" />
<mvc:annotation-driven />
<mvc:resources mapping="/static/**" location="WEB-INF/static/" />
</beans>
스프링 부트에서 @Configuration 어노테이션을 사용하여 구성을 정의하면 아래 예제처럼된다.
나중에 언급할 자동 구성 기능으로 정적 컨텐츠를 배포하는 설정은
자동으로 이루어 지므로 설정을 변경할 필요가 없다면 작성하지 않는다.
컴포넌트 메인 어플리케이션 클래스의 @SpringBootApplication 어노테이션을 사용하여 스캔 대상 패키지를 작성한다.
// 디폴트 설정을 위해 아무것도 설정하지 않는다.
@Configuration
public class ApplicationConfig implements WebMvcConfigurer { }
@SpringBootApplication( scanBasePackages = { "com.sample.web" } )
public class Application {
public static void main( String[] args ) {
SpringApplication.run( Application.class, args );
}
}