Spring 프레임 워크의 문서를 읽을 때, 나는 공장에서 Bean 의존성을 전달하는 두 가지 스타일을 발견했습니다.Spring에서 Bean 의존성을 전달하기위한 바람직한 방법은 무엇입니까?
@Configuration
public class MessagingConfiguration {
@Bean
public ConnectionFactory connectionFactory() {
CachingConnectionFactory connectionFactory = new CachingConnectionFactory("localhost");
connectionFactory.setUsername("guest");
connectionFactory.setPassword("guest");
return connectionFactory;
}
@Bean
public RabbitTemplate rabbitTemplate() {
return new RabbitTemplate(connectionFactory());
}
}
두번째는 다음과 같다 (공장 메소드의 파라미터로서 의존성 주입) :
@Configuration
public class MessagingConfiguration {
@Bean
public ConnectionFactory connectionFactory() {
CachingConnectionFactory connectionFactory = new CachingConnectionFactory("localhost");
connectionFactory.setUsername("guest");
connectionFactory.setPassword("guest");
return connectionFactory;
}
@Bean
public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {
return new RabbitTemplate(connectionFactory);
}
}
첫번째는 (직접 의존성 공장 메소드를 사용하여)이 같다 두 솔루션의 PRO 및 CON이 무엇이고 어느 것이 바람직한 지 알고 싶습니다.
당신이 하드 배선에 의해 무엇을 의미합니까? 두 조각은'RabbitTemplate'에 생성자 주입을 수행합니다. –
첫번째 예제에서,'RabbitTemplate'은'connectionFactory()'메소드의 직접적인 결과를 사용합니다. – gtonic
나는 OP가 아니야. 'connectionFactory'를 호출 한 결과가 캐시됩니다. 모든 호출은 동일한 값을 리턴합니다. –