더북(TheBook)

4.6.3 factory-bean과 factory-method 애트리뷰트 사용하기

때로는 스프링을 사용하지 않는 서드파티(third-party) 애플리케이션이 제공하는 자바빈(JavaBeans) 인스턴스를 생성해야 합니다. 이런 클래스를 어떻게 초기화해야 하는지 모르지만, 서드파티 애플리케이션의 클래스가 스프링 애플리케이션이 필요로 하는 인스턴스를 제공하는 것을 알고 있습니다. 이와 같은 때는 <bean> 태그에 스프링 빈의 factory-beanfactory-method 애트리뷰트를 사용할 수 있습니다.

다음 예제에서 어떻게 외부 팩터리 클래스를 사용하는지 살펴보겠습니다. 다음은 MessageDigest 빈을 반환하는 메서드를 제공하는 MessageDigestFactory의 새로운 버전입니다.

예제 4-30 스프링 외부 팩터리 클래스([[factory-bean-and-factory-method-attributes]] MessageDigestFactory.java)

package com.apress.prospring5.ch4;

import java.security.MessageDigest;

public class MessageDigestFactory {
    private String algorithmName = "MD5";

    public MessageDigest createInstance() throws Exception {
        return MessageDigest.getInstance(algorithmName);
    }

    public void setAlgorithmName(String algorithmName) {
        this.algorithmName = algorithmName;
    }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.