从spring获取bean时要使用的context.getBean

时间:2014-11-04 14:20:19

标签: java spring javabeans

在以下链接中 http://docs.spring.io/spring-amqp/reference/html/quick-tour.html

它在XML中定义了一个bean,如

<rabbit:template id="amqpTemplate" connection-factory="connectionFactory"/>

然后在调用代码中,它使用了

AmqpTemplate template = context.getBean(AmqpTemplate.class);

为何使用

context.getBean(AmqpTemplate.class);

而不是

 context.getBean("amqpTemplate");

getBean(AmqpTemplate.class)的含义是什么?我无法通过xml找到它。

2 个答案:

答案 0 :(得分:1)

如果您使用context.getBean("amqpTemplate"),则需要将结果转换为AmqpTemplate,而getBean(AmqpTemplate.class)会自动执行此操作。请注意,getBean(AmqpTemplate.class)只有在上下文中只有一个带有AmqpTemplate类的bean时才能工作

答案 1 :(得分:1)

getBean()

是一种重载方法。您可以使用bean名称或bean类型进行调用。使用该类调用将返回此类类型的单个实例。如果有多个抛出异常。如果没有,则会抛出异常。

请参阅here

相关问题