阅读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);
}
}
我想知道这两种解决方案的优缺点,并且哪一种更可取?
connectionFactory
的结果已被缓存。所有调用都将返回相同的值。 - Sotirios Delimanolis