본문 바로가기

dev/Spring

스프링 공부하기 - 토비의 스프링 3 : 3장 템플릿

반응형

처음으로 만족스런 챕터였다...


1장은 정말 아무것도 모르는 상태에서 맨땅에 헤딩하느라 기쁘고 뭐고... 사실 첫 예제를 제대로 실행했을때 기쁘긴 기쁘더라 ㅎ;

오죽했으면 블로그에까지 남겼겠나 -_-


그에 반해서 2장 테스트는 정말 고통스러운 챕터였다.

-_ㅜ


TDD  : test driven development 정신에 입각하여 열심히 예제를 통해서 보고 있는데

이놈의 JUnit test!


엄청난 오류를 뿜어낸다;


소스상의 문제는 없다.

하다하다 Github에 올라온 소스를 다운받아서 까지 다시 확인했는데 오타는 없더라;


console이나 JUnit 창에 나온 걸로 봐서는 annotation 관련된 문제 같은데 도대체 이유를 모르겠다 -_-;

그럼 이게 eclipse 혹은 spring tools suite 설치 혹은 세팅 상의 문제,

java build path, pom.xml, 등등 stackoverflow 에서 비슷한 이슈에 대한 답을 봐도

도무지 못 찾겠다.


좀 더 시간이 가면 알게 되려나...



아무튼 3장은 template과 callback 을 이용하는 방법에 대한 건데


한번 만든 소스의 무결성에 대한 확인을 하기 위해 여러가지 방법으로 시험한다.

그 후에 코드에 대한 신뢰를 유지하기 위해 혹은,

재사용성을 높이기 위해,

추후 유지보수를 쉽게 하기 위해 등등의 이유로 공통부분을 뽑아내서 템플릿으로 만들고 하는 과정이 흥미진진하다.






문제해결!


해결의 실마리는 org.springframework.test-3.0.3.RELEASE.jar이 제공했다.

책에서는 3.0.3 버전을 import 하라고 되어 있는데,

이것을 찾다보니 4.0버전도 있는것이었다?


그런데 또 파일이름이 spring-test-4.0.jar이 아닌가?

일단 기존에 깔려있던 3.25를 제거하고 4.0을 설치했는데 에러 메세지가 바뀌는 것이다.



기존에는 java.lang.NoClassDefFoundError: org/springframework/aop/TargetSource at org.springframework.context.annotation.AnnotationConfigUtils.registerAnnotationConfigProcessors(AnnotationConfigUtils.java:194) 로 에러메시지가 나왔었다.


org.springframework.test ~~~.jar 버전이 바꾸었더니 에러메시지가 바뀌었다?

그렇다면 버전업되면서 클래스 내부에 무언가 바뀌었겠다...는 생각과 함께 기존에 import 하고 있는 jar 버전을 모두 확인했다.


토비 스프링 3챕터까지 오면서 import 해야하는 jar 파일이 다음과 같다.


org.springframework.test-3.0.3.RELEASE.jar

org.springframework.jdbc-3.0.3.RELEASE.jar

org.springframework.expression-3.0.4.RELEASE.jar

org.springframework.context-3.0.3.RELEASE.jar

org.springframework.beans-3.0.3.RELEASE.jar

org.springframework.core-3.0.3.RELEASE.jar

mysql-connector-java-5.1.29-bin.jar

com.springsource.org.junit-4.7.0.jar

com.springsource.org.apache.commons.logging-1.1.1.jar

org.springframework.asm-3.0.3.RELEASE.jar

com.springsource.net.sf.cglib-2.2.0.jar


처음이고 하니 org.springframework.core-3.03.RELEASE.jar 이라면

타이핑 쉬운 org.springframework.core까지만 친 후에 java2s.com이나 등등 나오는 사이트에서 최신 버전을 받아서 등록했었다.

대부분 4.0 어쩌고던데...


그게 문제였다 -_________-;


어쨌거나 spring 3.0 (이후에 3.1 개정판이 나왔지만) 기준으로 소스가 작성되었기 때문에

jar 파일도 3.0 기준으로 맞춰야 하나보다.


으아 눈물 ㅠㅠㅠㅠ