요즘 하이버네이트를 2쩜대에서 3.2버전으로 마이그레이션하는 작업을 했습니다. 물론 그와 동시에 스프링도 2쩜대에서 2.5로 올리는 작업을 했는데 스프링은 정말 편했습니다. 필요한 라이브러리만 바꿔주면 되니까요. 그런데 하이버네이트는... 나중에 언급하겠습니다. 어쨋든 지금은 스프링만 생각해보겠습니다.

Spring 2.5 전에는 spring.jar, commons-logging.jar 파일만 넣어주면 만사 OK 였습니다. 저 같은 경우는 spring-mock.jar도 단골손님이었습니다.

그런데 Spring 2.5부터는 약간 바꼈습니다. OSGi에서 바로 사용할 수 있는 번들 형태로 배포한 것이 Spring 2.5의 가장 큰 변경 사항 중 하나인 것 같습니다.

그래서 Spring 2.0 에서 Spring 2.5로 올리시려면 Spring 2.5 JAR 패키지들을 조금 살펴봐야합니다. 조금만 보면 됩니다.

사용자 삽입 이미지
spring.jar에 포함되어 있지 않은 라이브러리

- spring-webmvc.jar: 컨트롤러들, 핸들러 맵퍼, DispatcherServlet 등 Spring MVC 관련 라이브러리는 dist/modules/spring-webmvc.jar에 들어있습니다.
- spring-test.jar: spring-mock.jar에 들어있던 모든 것들을 가지고 있습니다. 애노테이션 기반의 테스팅 라이브러리가 추가되었습니다.
- spring-webmvc-portlet.jar
- spring-webmvc-struts.jar

spring.jar에 포함되어 있는 라이브러리

- spring-aop
- spring-beans
- spring-context
- spring-context-support
- spring-core
- spring-jdbc
- spring-jms
- spring-orm
- spring-tx
- spring-web

OSGi 번들 형태로 배포하려면 JAR파일의 META-INF에 있는 MANIFEST.MF에서 노출 시키거나 가져와서 사용할 패지키를 명시해 두어야 하는데, 위에서 언급했던 모든 JAR파일들의 MANIFEST.MF 파일을 모두 Spring Source에서 손봐두었기 때문에, OSGi 번들로 사용할 때 별도의 작업을 하지 않아도 됩니다.

결론

if(나는 좀 귀찮다.) {  // 강추(쉽고, 간단)
    dist/spring.jar 추가.
    if(스프링 MVC를 사용 한다.)
        dist/modules/spring-webmvc.jar 추가.
    if(테스트 한다.)
        dist/modules/spring-test.jar 추가.
} else {  // 비추(라이브러리를 패키지 명까지 빠삭하게 알고 계신다 하더라도.. 귀찮은 작업..)
    dist/modules/ 폴더에서 사용하는 라이브러리를 담고 있는 JAR만 추가.
}