Dynamic refreshing of application contexts

http://jira.springframework.org/browse/SPR-94

어서 구현해주길 바라는 스프링의 기능 중에 하나로 주시하고 있는 기능입니다. (특정 이슈를 주시하고 있으려면 JIRA에서 Watch 기능을 사용하면되죠. 변경사항이 있으면 메일이 날아옵니다.) application context를 동적으로 수정할 수 있는 기능 입니다. 좀 더 구체적으로 XML이든 JavaConfic이든 어떤 빈 설정파일들을 주기적으로 다시 읽어주는 기능입니다. 현재 스프링 3.0 M2 일정에 잡혀있습니다. 리포터를 로드존슨이고 담당자는 Pro Spring 저자 롭 하랍입니다.

AOP와 AJAX가 가용한 Spring Controller

이번 스프링 세미나에서 만난 리오님과 나눈 잠깐의 대화에서 예전에 Spring Controller에 AOP를 적용하려다 실패해서 필터로 로깅 처리를 했던 일이 생각났습니다. 그리고 어머니 일을 돕던 중에 문득 ‘Spring에서 AJAX는 어떻게 사용하지?’ 라는 궁금증이 생겼습니다.

이 두 개의 궁금증을 한 방에 해결할 수 있는 아티클을 발견했습니다.
AOP / AJAX Enabled Controllers in Spring MVC
AOP Enabled Form Controllers in Spring MVC

다시 헤딩의 시작인가..ㄷㄷㄷ…

Guice와 Spring JavaConfig의 DI 스타일 비교

원문은 Guice vs. Spring JavaConfig: A comparison of DI styles 이런 제목으로 올라왔습니다. 다소 기다란 글로 다 읽진 못했습니다. 대강 훝기만 했죠.

Spring In Action 책 초반에 나오는 Knight 예제를 구글 Guice와 Spring의 Configurationd을 XML이 아닌 Java로 어노테이션을 사용하여 할 수 있도록 하는 JavaConfig를 사용하여 비교한 글입니다.

비교된 항목은

1. String Identifier : both Guice and Spring JavaConfig register a win in this category, as neither relies on String identifiers in their configuration and both are easily refactorable through modern IDEs. 둘 다 비슷!

2. Speed/Performance : bean 생성할 때 여러 life cycle을 제공하는 spring이 당연히 단순하게 묶기만 하는 guice보다 느릴 수 밖에… Guice 승!

3. JAR file footprint : 예제(aop와 di사용한 예제)를 돌릴 때 필요한 jar 파일 갯수로..Guice는 딱 두 개 필요하고 spring은 spring-javaconfig.jar, spring-beans.jar, spring-aop.jar, spring-core.jar, spring-context.jar, commons-logging.jar, aopalliance.jar, asm-2.2.2jar, cglib-nodep-2.1_3.jar, and aspectjweaver.jar 좀.. 많이 필요하군요. Guice가 Spring보다 훨씬 가볍다고 할 수 있겠네요. Guice 승!

4. Non-intrusive : AOP에서 injection 되는 클래스가 Guice에 종속된다는 군요. 따라서 재사용 할 수도 없고 Guice.jar파일 없으면 컴파일도 안된다는군요. Spring 승!

5. Third-party beans : Third-party 빈에 속성을 DI 할 때 SpringConfig는 전혀 불편함을 못느꼈으나.. Guice로는 어려웠다. Spring 승!

6. Constant/literal injection : Injection할 때 Guice의 어노테이션 사용이 다소 불편한 것이 있다봅니다. Spring 승!

7. AOP : Spring이나 Guice나 둘 다 AspectJ에는 비교할 수 없지만 Guice는 공식 문서에서도 AOP가 Spring에 비해 좀 딸린다고 알렸고 그게 오히려 단순함을 추구하는 추세라고 했지만…어노테이션 붙이는게 복잡한다 봅니다. Spring 승!

결국 Spring이 DI와 AOP 기능만 Guice와 비교 해봤을 때 4승 1무 2패로 이겼네요.

이글의 밑에는 미친밥이 직접와서 리플도 달아놨군요. 흠.. 거기까지 읽기가 귀찮네요.

Spring Reference 정리

사용자 삽입 이미지현재 Chapter 3을 정리하고 있습니다. Reference 분량이 엄청나군요~ 500페이지..ㅠ.ㅠ

http://agilejava.googlecode.com/svn/  <= SVN URL
http://code.google.com/p/agilejava/  <= Project Home

dk75.bmp

위 주소의 svn repository에는 현재 정리 중인 Spring Reference 정리를 위해 사용중인 예제 코드. – Spring Study

테스트 주도 개발 1장~17장 까지 Money 예제 소스 코드 연습 한 것. – TDD

테스트 주도 개발 18장~20장 까지 xUnit 예제 소스 코드 연습 한 것. – xUnit

만들다 만 주소록. – addressbook & webAddressBook

Tdd 도우미 – TddHelper

랜덤 리스트 축출기 – RandomListSelecter

이런 것 들을 모아 놨습니다. 누구든지 anonymous로 checkout 받으실 수 있습니다.

Spring Framework 소스코드 CVS로 다운받기

Spring 소스 SVN으로 다운받기를 시도해본 적이 있는데 오늘 갑자기 그 때 일이 다시 생각납니다. Spring 소스 코드를 CVS로 밖에 제공하지 않더군요. Eclipse에 SVN으로 checkout이나 commit은 종종 해봤지만 CVS는 해본적이 없어서 일단은 SVN repository와 같아 보이는 CVS repository를 열었습니다.
1343883341.bmp
CVS+ 라는 아이콘을 클릭하고 소스코드가 있는 곳의 주소를 넣어줘야 될 것 같습니다.
1058144926.bmp위와 같이 입력하고 finish 를 하면 CVS repository에 다음과 같이 저장소가 하나 잡힌 것을 확인 할 수 있습니다. 아마도 Spring이겠죠. Spring을 체크아웃 받습니다.

1253626790.bmp이 안에 sample 코드도 많이 들어있고 spring 소스파일들은 src 폴더 안에 들어있습니다.

참고 : http://sourceforge.net/cvs/?group_id=73357