프로그래밍 언어/JAVA, SPRING

[SPRING BOOT] 자동 설정 기능

doomole 2024. 7. 17. 17:16
728x90

소개

Spring Boot의 자동 설정(Autoconfiguration) 기능은 개발자가 명시적으로 설정하지 않아도 애플리케이션을 구성하는 데 도움을 줍니다. 이 기능은 Spring Framework의 다양한 설정을 자동으로 적용하여 개발 시간을 단축하고 코드의 간소화를 제공합니다.

 

 

작동 방식

Spring Boot는 클래스패스에 존재하는 라이브러리와 개발자가 정의한 빈(bean)을 기반으로 적절한 설정을 자동으로 구성합니다. 이를 통해 최소한의 설정으로도 애플리케이션을 빠르게 시작할 수 있습니다.

 

 

예시 : 데이터베이스 설정

Spring Boot는 데이터베이스 종속성이 포함된 경우, 기본적으로 데이터소스를 자동으로 설정합니다. 예를 들어, spring-boot-starter-data-jpa 종속성을 추가하면 Spring Boot는 자동으로 H2, MySQL 등과 같은 데이터베이스를 설정합니다.

 

application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=update

 

 

비활성화

특정 자동 설정을 비활성화하려면 @SpringBootApplication 애노테이션에 exclude 속성을 사용합니다.

 

DemoApplication.java

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;

@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

 

 

@Conditional 어노테이션

Spring Boot의 자동 설정은 @Conditional 애노테이션을 사용하여 조건부로 설정을 적용합니다. 예를 들어, 특정 클래스가 클래스패스에 존재할 때만 빈을 생성합니다.

 

MyConfiguration.java

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;

@Configuration
public class MyConfiguration {
    @Bean
    @ConditionalOnClass(name = "com.example.SomeClass")
    public MyBean myBean() {
        return new MyBean();
    }
}

 

 

문의사항이나 피드백은 댓글로 남겨주세요.