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 );
    }
}