diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/JmsAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/JmsAutoConfiguration.java index bafaa77762e..70d3a86226d 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/JmsAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/JmsAutoConfiguration.java @@ -110,8 +110,19 @@ public class JmsAutoConfiguration { @Bean @ConditionalOnMissingBean @ConditionalOnSingleCandidate(JmsTemplate.class) - public JmsMessagingTemplate jmsMessagingTemplate(JmsTemplate jmsTemplate) { - return new JmsMessagingTemplate(jmsTemplate); + public JmsMessagingTemplate jmsMessagingTemplate(JmsProperties properties, + JmsTemplate jmsTemplate) { + JmsMessagingTemplate messagingTemplate = new JmsMessagingTemplate( + jmsTemplate); + mapTemplateProperties(properties.getTemplate(), messagingTemplate); + return messagingTemplate; + } + + private void mapTemplateProperties(Template properties, + JmsMessagingTemplate messagingTemplate) { + PropertyMapper map = PropertyMapper.get().alwaysApplyingWhenNonNull(); + map.from(properties::getDefaultDestination) + .to(messagingTemplate::setDefaultDestinationName); } } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/JmsAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/JmsAutoConfigurationTests.java index c12e1ad22a3..ad27e02f44a 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/JmsAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/JmsAutoConfigurationTests.java @@ -291,6 +291,18 @@ public class JmsAutoConfigurationTests { }); } + @Test + public void testJmsMessagingTemplateUseConfiguredDefaultDestination() { + this.contextRunner + .withPropertyValues("spring.jms.template.default-destination=testQueue") + .run((context) -> { + JmsMessagingTemplate messagingTemplate = context + .getBean(JmsMessagingTemplate.class); + assertThat(messagingTemplate.getDefaultDestinationName()) + .isEqualTo("testQueue"); + }); + } + @Test public void testPubSubDisabledByDefault() { this.contextRunner.withUserConfiguration(TestConfiguration.class)