[Spring 실습] 자동 설정 모듈 구현하고 통합하기

Jiwoo Jung·2024년 11월 6일
0

GDGoC Spring 스터디

목록 보기
4/15

자동 설정 모듈을 만들고 이를 스프링 부트 애플리케이션에 통합하기.
(선택) 프로파일과 조건을 사용하여 스프링 부트의 자동 설정 충돌 해결 방식을 분석하기.

1. AutoConfiguration Class 생성

  • @Configuration annotation으로 spring configuration class 명시하기.
  • conditional annotation 사용하기
  @Configuration
  @EnableWebMvc
  @ConditionalOnClass(HelloController.class)
  public class MyAutoConfiguration {

      @Bean
      @ConditionalOnMissingBean(HelloController.class)
      public HelloController helloController() {
          return new HelloController();
      }

  }

2. spring.factories 파일 등록

  • spring boot는 spring.factores 파일로 auto configuration을 인식한다.
  1. src/main/resources/META-INF 경로에 spring.factories 생성하기

  2. 1에서 만든 AutoConfiguration Class 경로를 작성하기

    org.springframework.boot.autoconfigure.EnableAutoConfiguration=\gdg.spring_lab_01\MyAutoConfiguration

3. build.gradle 에 의존성 추가

    dependencies {
        implementation 'org.springframework.boot:spring-boot-autoconfigure'
    }

4. 테스트

build.gradle에 테스트를 위한 의존성 추가하기

dependencies {
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

테스트 코드

@SpringBootTest
class MyAutoConfigurationTest {
    @Autowired
    private ApplicationContext context;

    @Test
    void helloControllerBeanShouldBeRegistered() {
        HelloController helloController = context.getBean(HelloController.class);
        assertThat(helloController).isNotNull();
    }
}

ApplicationContext에서 HelloController 빈을 가져오고, null이 아닌지 검증한다.

0개의 댓글