스프링을 배우다보면 XML 파일로 설정할 일이 상당히 많습니다.
요즘은 Java configuration 이 트랜드라지만 현업에서는 아직도 XML설정이 많이 쓰이고 있기에 결국 둘다 알고있어야 하기에 스프링 XML 설정 방법을 정리해둡니다.
2가지 설정 방법의 예시는 뉴렉처님이 강의에서 사용하셨던 이미지 한장으로 확실히 익힐 수 있습니다.
(코드블록에 적어봤는데 뉴렉처님의 강의 사진 보다 확 와닿는 느낌이 없었습니다..)
XML Configuration & Java Configuration 코드 예시
위 xml 내용과 아래 java 클래스는 완전히 같은 역할을 합니다.
1. @Configuration 어노테이션은 스프링에게 설정을 위한 클래스임을 알려주는 어노테이션입니다.
2. @ComponentScan("패키지명") 어노테이션은 <context:component-scan base-pakage="페키지경로" /> 로 써주는것과 같은 역할을 합니다다.
3. @Bean 위 xml파일의 <bean> 태그와 같은데 스프링 IOC 컨테이너안에 bean으로서 객체를 담아준다.
4. Application Context 을 ClassPathXml 에서 AnnotationConfig 로 변경해야 합니다.
각각의 장단점도 간단히 정리해 보았습니다.
XML 기반 설정의 장단점
장점:
- 명시적 설정: 빈 구성이 명시적으로 파일에 정의되어 있어, 설정을 한눈에 파악하기 쉽습니다.
- 분리된 설정: 코드와 별도로 설정이 관리되어, 코드 변경 없이 설정 조정이 가능합니다.
단점:
- 유지 관리: 큰 프로젝트에서 XML 설정 파일이 많아지면 관리가 복잡해질 수 있습니다.
- 타입 안전성 부재: XML은 타입 안전하지 않아, 리팩토링 시 오류를 발견하기 어려울 수 있습니다.
Java 기반 설정의 장단점
장점:
- 타입 안전성: Java 설정은 컴파일 타임에 타입을 체크하므로, 더 안전하고 리팩토링에 용이합니다.
- 코드 중심: 설정이 코드와 함께 있어 개발 프로세스가 더 간소화됩니다.
단점:
- 학습 곡선: 어노테이션과 Java 기반 설정에 익숙해지기까지 시간이 걸릴 수 있습니다.
결론
XML 설정은 레거시 프로젝트나 상세한 설정이 필요할때 유용합니다. 반면, Java 설정은 현대적인 스프링 애플리케이션 개발에 선호되며, 특히 애노테이션을 활용한 프로그래밍에 익숙한 개발자에게 적합합니다. 프로젝트의 요구 사항과 개발 팀의 선호도에 따라 적절한 설정 방식을 선택할 수 있습니다.
여기까지 스프링 지시서 작성을 XML과 Java 2가지 방법으로 알아봤습니다. 감사합니다!
'Spring Framework' 카테고리의 다른 글
프론트 컨트롤러와 컨트롤러의 차이는? (0) | 2024.02.14 |
---|---|
관점지향프로그래밍(AOP) 에서 관점(Aspect)은 무슨 뜻일까? (1) | 2024.02.13 |
Autowired 어노테이션은 무엇을 기준으로 DI 해줄까? (0) | 2024.02.11 |
스프링 DI & IOC 란? (1) | 2024.02.09 |
어느덧 신입 개발자가 됐습니다. (0) | 2024.02.08 |