[Spring] 다양한 설정 형식 지원 - 자바 코드, XML

soonhankwon·2023년 9월 20일
0

스프링 컨테이너는 다양한 형식의 설정 정보를 받아드릴 수 있게 유연하게 설계되어 있습니다.

애노테이션 기반 자바 코드 설정 사용

최근 스프링부트를 많이 사용하면서 스프링 애플리케이션을 개발할 때 권장되는 방식

  • AnnotationConfigApplicationContext
    • 해당 클래스를 사용하면서 자바 코드로된 설정 정보를 넘기면 됩니다.
    • ex) AppConfig.class
      @Configuration
      public class AppConfig {
      	@Bean
      	public MyService myService() {
      		return new MyServiceImpl();
      	}
      }

XML 설정 사용

  • 최근 스프링부트를 많이 사용하면서 XML 기반의 설정은 잘 사용하지 않습니다.
    • 컴파일 없이 빈 설정 정보를 변경할 수 있는 장점도 있다.
      • XML 설정 파일을 수정하면 애플리케이션을 재시작하지 않고도 변경된 설정을 반영할 수 있습니다.
      • 대규모 프로젝트에서는 XML을 사용하여 설정을 중앙 집중화하고 구성 관리를 용이하게 할 수 있습니다.
    • GenericXmlApplicationContext
    • ex) appConfig.xml
      <!-- appConfig.xml -->
      <beans xmlns="http://www.springframework.org/schema/beans"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
      
          **<bean id="myService" class="com.example.MyServiceImpl"/>**
      </beans>
      GenericXmlApplicationContext context = new GenericXmlApplicationContext("classpath:appConfig.xml");
  • xml 기반의 appConfig.xml 스프링 설정 정보와 자바 코드로 된 AppConfig.java 설정 정보를 비교해보면 거의 비슷하다는 것을 알 수 있습니다.

Summary.

스프링 프레임워크는 이러한 설정 형식을 혼합하여 사용할 수도 있습니다.

예를 들어, 일부 빈은 애노테이션 기반 설정으로 정의하고, 다른 빈은 XML 파일에서 정의할 수 있습니다.

스프링은 이렇게 다양한 설정 형식을 사용할 수 있도록 유연하게 설계되어 있습니다.


Reference.

  • 스프링 핵심원리 기본편 - 김영한님
  • Spring reference
profile
ProblemOverFlow

0개의 댓글