검색결과 리스트
Spring 3.0에 해당되는 글 5건
- 2010/07/28 토비의 스프링 3 A/S
- 2010/07/17 8월 5일 출간, 토비의 스프링 3
- 2009/12/14 Spring 3.0 GA 출시, 그리고 작은 기여 (1)
- 2009/12/11 새로운 자바 기술을 소개하는 글 (1)
- 2008/04/17 SpringSource의 상업화 전략에 대한 인터뷰 (1)
글
토비의 스프링 3 A/S
글
8월 5일 출간, 토비의 스프링 3
![]() |
토비의 스프링 3 - ![]() 이일민 지음/에이콘출판 |
역시 술김에 사심 가득한 홍보성 글을 올립니다. 사랑(?)하는 토비 형이 지난 일년간 연 수입의 9/10를 손해 보면서 화끈하게 투자한 책이 다음 달에 나오네요. 앞으로 다시는 저술이나 번역을 안하겠다고 할 만큼 심혈을 기울인 책입니다. 화공과 출신이라 그런지 몰라도 1장은 조금 지루하지만 로드 존슨(Rod Johnson)도 한글을 안다면 인정할만한 책이 아닌가 합니다. 물론, 지금 술김이지만, 추천합니다.
특히나 DI(Dependency Injection) 설명을 위한 초난감 DAO 개선 절차는 이 책의 꽃입니다. 물론, 실무 수준에서는 2부의 엑기스 중심 정리가 더욱 도움이 되겠지만 말이죠... 쩝... 암튼 형 대단해. 2006년 일면식도 없는데 까칠하게 블로그에 태클 단 일 이해해줄께. 다음에 서울 오면 오룡해삼 쏴~
글
Spring 3.0 GA 출시, 그리고 작은 기여
스프링 3.0 GA(General Availability) 출시가 내일이다. GA란 표현이 생소할 수 있는데 최종 버전 혹은 정식 버전을 의미한다. 스프링 3.0을 공부하고 있지도 않았고, 딱히 최종 버전을 쓰고 싶어 기다린 터도 아니라 동동 구르며 출시를 기다리며 쓴 글은 아니다. 솔직히 고백하면 유치하게도 자랑하고 싶어 올린 글이다. :)
금요일에는 분명히 열린 이슈가 4~5였는데 다시 늘었다.
그 중 하나의 이슈에 낯익은 이름이 있다.
Toby형 글을 읽고 메신저로 이야기를 나누다가 발견한 옥에 티다. 스프링의 Javadoc에 대한 신뢰가 있었던 터라 오류가 믿기지 않아 우선 Toby형에게 확인을 부탁했다. 그리고 혹시나 낡은 코드를 보고 뒷북치는 일이 아닐까 해서 스프링 프로젝트 Trunk에 있는 소스를 직접 확인했다. 이미 할당한 작업이 있는지도 보았는데 없었다. 짧은 영어 실력이지만 설명은 어렵지 않았다. 레퍼런스에서 예를 든 내용과 Javadoc에 기술한 제약사항이 정면으로 배치하고 있었기 때문이다.
I found the difference between the javadoc for the @Bean annotation and the reference doc in RC 3.0 release.
The javadoc reads:
- <h3>Constraints</h3>
- <ul>
- <li>Bean methods are valid only when declared within an {@link Configuration @Configuration}-annotated class
But, the reference(3.10.4 Defining bean metadata within components) says:
@Component
public class FactoryMethodComponent {
private static int i;
@Bean @Qualifier("public")
public TestBean publicInstance() {
return new TestBean("publicInstance");
}
자랑하려고 올린 글이 민망해 그럴싸한 미사여구를 덧붙이고 싶은 마음이 생긴다. 일요일 낮에 기대하지 못한 경험을 했다. 마찬가지로 #SPR-6546 역시 우연히 알아낸 사항을 별 생각 없이 올린 결과일 뿐이다. 근래에 부쩍 느끼지만, 일의 결과로 맞이하는 상황은 계획했던 모습과 아주 큰 차이가 있다. 삶에서 중요한 일은 상당부분은 우연이라고밖에는 설명할 수 없는 일에서 촉발한다. 하지만, 분명한 사실은 꿈을 꾸고 노력을 했을 때 무언가 결과를 얻었다는 점이다.
언젠가 미래의 내가 이 글을 읽으면 지금의 유치한 나를 떠올리며 입가에 미소를 지을 것이다. 혹시 그 친구가 꿈꾸는 삶의 소중함을 잊어버렸다면 기억하라고 하고 싶다.
- 여자친구에게 유치한 내 꿈을 설명하며 감격했던 마음을
- 고군분투하는 동지와 통닭을 먹으며 동업(同業)이란 말을 새로 배우던 그 날을
- 꿈을 위해 그에 합당하게 준비하는 사람의 모습을
- 그리고, 마음이 하는 말을 듣지 못하는 장애를 극복하라는 누군가의 가르침을
- 연말 구세군 냄비에도 멈칫하지만 말고 사소한 기부라도 시작하자는 마음을
(2009-12-14 갱신)
유겐 휄러가 이슈를 수정했다. 오류가 있던 내용은 이랬는데
Constraints
- Bean methods are valid only when declared within an {@link Configuration @Configuration}-annotated class
- Bean methods must be non-void, non-final, non-private
- Bean methods may not accept any arguments
- Bean methods may throw any exception, which will be caught and handled by the Spring container on processing of the declaring {@link Configuration @Configuration} class.
Usage
Bean methods may reference other Bean methods by calling them directly. This ensures
that references between beans are strongly typed and navigable. So called 'inter-bean
references' are guaranteed to respect scoping and AOP semantics.
수정 후(Rev 2645)는
The @Bean annotation may be used on any methods in an @Component
class, in which case they will get processed in a configuration class 'lite' mode where
they will simply be called as plain factory methods from the container (similar to
factory-method declarations in XML). The containing component classes remain
unmodified in this case, and there are no unusual constraints for factory methods.
As an advanced mode, @Bean may also be used within @Configuration
component classes. In this case, bean methods may reference other @Bean methods
on the same class by calling them directly. This ensures that references between beans
are strongly typed and navigable. Such so-called 'inter-bean references' are guaranteed to
respect scoping and AOP semantics, just like getBean lookups would. These are
the semantics known from the original 'Spring JavaConfig' project which require CGLIB
subclassing of each such configuration class at runtime. As a consequence, configuration
classes and their factory methods must not be marked as final or private in this mode.
글
새로운 자바 기술을 소개하는 글
| S 서블릿 3.0에서 파일 업로드 (2009년 10월) | |
| 넷빈즈 6.8로 자바 EE 6 시작하기 (2009년 9월) | |
| 3년을 기다렸다 (2009년 6월) |
Toby 형이 쓴 글도 있다. 자바 스펙을 직접 다루지는 않았지만, 자바 진영에서 일어나는 DI(Dependency Injection)의 발전과정을 그대로 담은 스프링의 애노테이션에 대한 글이다.
Spring 3.0 (56) @Bean 사용의 주의사항
요구하는 배경 지식이 많아 쉽지 않은 글이지만 개념을 잡는데 도움을 주는 글이다. 이를테면 다음과 같은 표현은 충분한 경험이 없다면 쉽게 포착할 수 없는 말이다.
이참에 공부를 좀 할까 하는데, 테스트를 위한 시험 문제도 제공했다.
@Component
public class FactoryMethodComponent {
private static int i;
@Bean @Qualifier("public")
public TestBean publicInstance() {
return new TestBean("publicInstance");
}
// use of a custom qualifier and autowiring of method parameters
@Bean @BeanAge(1)
protected TestBean protectedInstance(@Qualifier("public") TestBean spouse,
@Value("#{privateInstance.age}") String country) {
TestBean tb = new TestBean("protectedInstance", 1);
tb.setSpouse(tb);
tb.setCountry(country);
return tb;
}
@Bean @Scope(BeanDefinition.SCOPE_SINGLETON)
private TestBean privateInstance() {
return new TestBean("privateInstance", i++);
}
@Bean @Scope(value = WebApplicationContext.SCOPE_SESSION,
proxyMode = ScopedProxyMode.TARGET_CLASS)
public TestBean requestScopedInstance() {
return new TestBean("requestScopedInstance", 3);
}
}
글
SpringSource의 상업화 전략에 대한 인터뷰

동기는 자연스런 진화라고 설명한다. Rod Johnson의 책에서 오픈소스 프로젝트로, 다시 컨설팅 회사로, 다음 단계가 기업 고객(enterprise customers) 지원 체계를 정비한 것이라 한다.
서비스 수준을 묻는 질문에서는 플래티넘 고객은 1시간 이내의 응답시간을 보장한다고 한다. 그러나, 지원 인력(support engineers)이 호주, 영국, 캐나다에 국한해 있다는 것. 자세한 서비스 레벨 소개는 인터뷰만으로 알기 힘들었다. 맥도날드의 모델을 차용한 것이라는데... 맥도날드가 어떻게 하길래?
툴 스위트의 기본 구성은 모두 오픈소스인 Spring IDE, AJDT와 Mylyn이다. 툴 스위트 고유의 특징은 마치 MS를 연상케 하는 context-sensitive 도움말과 날리지 베이스이다. 한편, Covalent 인수로 SpringSource는 애플리케이션 수준에서 인프라 수준(ApacheHTTP, ActiveMQ)까지 컨설팅이 가능하게 되었다.
3.0에 대한 방향을 요약하면 다음과 같다.
- Java 5 기반 구현, 최선 JEE 지원(Profile 등)
- 웹이 정보시스템(enterprise) 영역외에서도 쓰일 수 있게, Ajax 기능을 강화하고, REST 지원 및 Spring Expression Language 추가 예정

