20140208 JavaConfig 설정된 프로젝트 Spring Project Nature
곧 있을 발표에 사용할 목적으로, 그레들Gradle과 JavaConfig를 적용한 프로젝트를 만들었다.
발표를 빙자해서 나도 JavaConfig 사용법을 익혀볼 요량으로 만들었다. 이번에 토.스.3.1을 읽으면서 JavaConfig를 통해서 XML설정을 대체했을 때의 강점들에 대해 전해 들은 바가 있어 시도해본다. 더욱 강점을 가지려면 @Profile을 통해서 사용환경별로 지정해서 사용하는 것이 좋을 것으로 보인다. 과연?
자바의 웹 애플리케이션에는 관례적으로 web.xml이 포함되어 있어야 했다. 그런데 서블릿3.0 스펙이 나오면서 web.xml 대신ServletContext를 스프링에서 확장한 WebApplicationInitializer를 구현하여 초기화 작업이 가능하다. 자세한 내용은 'web.xml 없는 스프링 개발'을 참조하기 바란다.
이번 예제 프로젝트에는 애플리케이션 설정과 관련된 XML들을 모두 @Configuration 애노테이션을 선언한 클래스들로 대체했다.
Github repository: https://github.com/ihoneymon/rocking-the-rest-api
▣ 선행작업
$ git clone git@github.com:ihoneymon/rocking-the-rest-api.git
$ cd rocking-the-rest-api
$ ./gradlew generateQueryDsl
▣ Import project
▣ Spring tools - Add Spring project nature
Spring Project Nature를 추가하고 프로젝트의 아이콘이 변경되면, 프로젝트의 속성창을 띄워서 [Spring-Beans Support]를 가면 아직 설정파일이 추가되어 있지 않다. [Scan...] 버튼을 누른다.
@Configuration 이 붙은 JavaConfig 용 클래스들이 검색된다. 모두 선택하고 [OK]를 누른다.
Config 파일들 목록이 모두 추가되어 있다.
▣ Spring Beans 확인
'Spring Explorer' 창을 보면 아래 그림과 같이 스프링 빈과 관련된 클래스와 목록을 확인할 수 있다.
밑에 'Config Detection'에 설정을 변경하지는 않았지만, 혹시나 검색되지 않는다면 아래 그림에서 보는 것처럼 'Auto detection for annotated Java Spring configuration files'를 체크하자.
이후에는 간단하게 Controller들을 구현해주면 발표하려는 수순까지 발표에 사용가능하다.
오늘은 열심히 발표자료들 수집하고, 대략적으로 내용을 정리해야지.