Enterprise 중급

Spring XML 빈 설정 대 어노테이션 기반

장황한 Spring XML 빈 정의를 간결한 어노테이션 기반 설정으로 대체합니다.

✕ Spring (XML)
<!-- applicationContext.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="userRepository"
          class="com.example.UserRepository">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <bean id="userService"
          class="com.example.UserService">
        <property name="repository" ref="userRepository"/>
    </bean>

</beans>
✓ Spring Boot 3+
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

@Repository
public class UserRepository {
    private final JdbcTemplate jdbc;

    public UserRepository(JdbcTemplate jdbc) {
        this.jdbc = jdbc;
    }
}

@Service
public class UserService {
    private final UserRepository repository;

    public UserService(UserRepository repository) {
        this.repository = repository;
    }
}
이 코드에 문제가 있나요? 알려주세요.
🚫

XML 없음

@SpringBootApplication이 컴포넌트 스캔과 자동 설정을 트리거하여 모든 XML 연결 파일을 제거합니다.

💉

생성자 주입

Spring이 생성자를 통해 자동으로 의존성을 주입하여 빈을 테스트하고 이해하기 쉽게 만듭니다.

자동 설정

Spring Boot가 클래스패스에서 DataSource, JPA, 기타 인프라를 보일러플레이트 없이 설정합니다.

이전 방식
XML 빈 정의
모던 방식
어노테이션 기반 빈
JDK 버전
17
난이도
중급
Spring XML 빈 설정 대 어노테이션 기반
사용 가능

Spring Boot 1.0 (2014년 4월) 이후 널리 사용 가능; Spring Boot 3 권장

전통적인 Spring 애플리케이션은 XML 설정 파일을 통해 빈을 연결했습니다. 현대 Spring Boot 애플리케이션은 컴포넌트 스캔, @Component/@Service/@Repository 어노테이션, 자동 설정을 사용합니다.

공유 𝕏 🦋 in