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