본문 바로가기

Homo Faber/Idioms8

Spring에서 annotation 태그 사용하기 (2) Qualifier를 사용하는 annotation 기반 자동엮음(autowiring) 세부 조정 타입에 의한 자동엮음(autowiring)은 여러개의 빈이 엮여질 수 있기 때문에 선택 과정에 대해서 좀 더 제어를 할 필요가 종종 있다. 이를 하기 위한 한가지 방법은 Spring의 @Qualifier annotation을 사용하는 것이다. 가장 단순한 경우, annotation 내의 빈 이름을 써서 byName 자동엮음을 할 수 있다. public class MovieRecommender { @Autowired @Qualifier("mainCatalog") private MovieCatalog movieCatalog; // ... } @Qualifier annotation은 또한 개개의 생성자 인자나 메소드.. 2008. 2. 20.
Spring에서 annotation 태그 사용하기 (1) - @Autowired annotation과 같이 BeanPostProcessor를 사용하는 RequiredAnnotationBeanProcessor는 Spring의 IoC 컨테이너를 확장하는 보편적인 방법이다. 예를 들어, Spring 2.0은 @Required annotation을 사용해서 강제적으로 엮여야(wired) 되는 속성에 대해서 소개하고 있다. Spring 2.5 에서도 동일하게 Spring의 의존성 주입(dependency injection)을 위해서 동일한 일반적인 방법으로 사용할 수 있다. 근본적으로 @Autowired annotation은 autowiring과 동일한 기능을 제공하지만 세밀하게 조절이 가능하고 더 넓게 적용이 가능하다. Spring 2.5는 또한 @Resource, @PostConstruc.. 2008. 2. 20.
Hibernate 테스팅 - Unitils 사용하기 Hibernate의 최대 장점은 아마도 어떠한 DB를 사용하더라도 코드의 변화가 적다는 것이다. 따라서, 테스팅에서도 실제 DB를 사용하지 않더라도 코딩이 가능하다. 여기서는 Hibernate와 Spring을 사용해서 테스팅 하는 예제를 설명하겠다. (도메인 모델은 이전에 설명한 일대다 관계의 예제) Spring Framework에서는 ORM과 관련된 Support 클래스를 제공하고 있는데, Hibernate 3에 대해서는 org.springframework.orm.hibernate3.support.HibernateDaoSupport 와 같은 지원 클래스를 제공한다. 우선, 데이터 리소스를 접근하는 인터페이스를 다음과 같이 정의할 수 있다. public interface SaveRepository { b.. 2008. 2. 18.
Hibernate3 사용시 Join 테이블에 FK 이외의 컬럼이 있는 경우 매핑 ORM을 사용하다 보면 항상 겪는 문제지만, 다대다(many-to-many) 관계를 객체와 어떻게 매핑할 것인가이다. 물론, 객체 입장에서는 두 객체간의 Collection 문제지만, DB 입장에서는 항상 Join 테이블이 끼어 있어서 이를 해결하기간 웬만해서는 쉽지 않다. Hibernate3는 EJB3의 JPA(Java Persistence API)의 구현체로 이에 대한 문제를 다음과 같이 해결하고 있다. 위의 그림과 같이 Category에 Item을 추가할 때마다 어떤 정보가 필요하다고 가정하자. 위의 구조를 자바 클래스에 매핑하는 데에 두가지 방법이 있다. 첫번째 방법은 join 테이블에 대한 중간의 entity 클래스를 사용하여 일대다(one-to-many) 관계로 매핑하는 것이다. 두번째 방법은.. 2008. 2. 13.
반응형