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
난이도
중급
JDK 지원
Spring XML 빈 설정 대 어노테이션 기반
사용 가능
Spring Boot 1.0 (2014년 4월) 이후 널리 사용 가능; Spring Boot 3 권장
동작 원리
전통적인 Spring 애플리케이션은 XML 설정 파일을 통해 빈을 연결했습니다. 현대 Spring Boot 애플리케이션은 컴포넌트 스캔, @Component/@Service/@Repository 어노테이션, 자동 설정을 사용합니다.
관련 문서