Spring IDE 2.0 활용하기
참조 : Introduction to Spring IDE 2.0
Spring IDE 2.0 설치방법은 제외하겠습니다.
1. Spring 프로젝트 만들기
특별히 달라진 건 없습니다. 다만 프로젝트에 s가 붙었고, Spring 설정 파일(xml 파일)에서 자동완성을 지원해 주게 됩니다. 하지만 아직은 설정파일을 만들지 않았기 때문에 일반 자바 프로젝트 생성과 차이점을 못느낍니다.
2. 소스 코딩
별다를것이 없습니다. 그냥 POJO 클래스 두 개를 만들어서 서로 참조 관계에 있도록 코딩해보겠습니다.
public class School {
private Student student;
private String name;
public Student getStudent() {
return student;
}
public void setStudent(Student student) {
this.student = student;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package whiteship;
public class Student {
private School school;
private String name;
public School getSchool() {
return school;
}
public void setSchool(School school) {
this.school = school;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
3. 설정 파일 만들기
자 여기서 다시 한 번 Spring IDE의 도움을 크게 받을 수 있습니다.
설정파일의 이름과 설정파일을 만들 위치를 지정해 줍니다.
여기까진 별거 아닌거 같죠. 하지만 이 다음이 대박입니다.
바로 이거!! 여기서 필요한 스키마만 로딩해서 사용할 수 있습니다. 저는 모든 스키마를(osgi빼고..) 전부 자동 완성에 등록해놓고 사용하고 있었습니다. 따라서 사용하지도 않을 스키마를 불러놓고 사용한 설정파일들이 꽤 됩니다. 그렇다고 자동 완성으로 코드 만들어 놓고 지우는 작업을 하자니 상당히 귀찮았었는데 저걸 보니 너무도 기쁩니다.
지금은 필요한게 없기 때문에 Next~ Finish!
4. 설정 파일 채우기
위에서 만들어진 설정 파일에 bean을 추가해 줍니다.
bean의 속성을 설정할 때는 자동완성을 꼭 활용하는 습관이 오타를 줄여주고 여유있는 코딩(굳이 엄청난 타자수를 자랑하지 않으셔도 됩니다.)에 도움이 됩니다.
<property name="school" ref="kookmin" />
<property name="name" value="기선" />
</bean>
<bean id="kookmin" class="whiteship.School">
<property name="student" ref="keesun" />
<property name="name" value="국민대" />
</bean>
5. 필요한 라이브러리 추가
spring.jar[footnote]Spring Framework.zip을 푸시면 dist 폴더에 있습니다.[/footnote]와 commons-logging.jar[footnote]lib/jakarta-commons 폴더에 있습니다.[/footnote]는 필수 입니다.
덤으로 log4j.jar를 추가해주시면 로그를 볼 수 있습니다.
spring-mock.jar와 junit.jar를 추가하면 Spring을 위한 테스트 클래스들을 사용할 수 있습니다.
프로젝트 하위에 lib 폴더를 만드신 뒤 위의 jar파일들을 복사 붙여넣기 하시고 자바 빌드 패스에서 추가해 줍니다.
6. 테스트 작성 및 실행
import org.springframework.test.AbstractDependencyInjectionSpringContextTests;
public class TestDI extends AbstractDependencyInjectionSpringContextTests {
private Student student;
private School school;
public void setStudent(Student student) {
this.student = student;
}
public void setSchool(School school) {
this.school = school;
}
@Override
protected String[] getConfigLocations() {
return new String[] { "file:src/whiteship/applicationContext.xml" };
}
public void testDI() throws Exception {
assertNotNull(student);
assertNotNull(school);
assertEquals(student, school.getStudent());
assertEquals("기선", student.getName());
}
}
너무 길어져서 이후는 다음에 계속 연재하겠습니다.