이것은 내포 된 브로커에 메시지를 보내는 구성입니다. 또한 첫 번째 bean 메소드는 브로커를 만들고 시작하는 데 사용됩니다. 인스턴스를 리턴하지 않습니다. 이 코드가 브로커를 시작합니까? JMS 템플리트의 send 메소드를 사용하여 아래에 언급 된 주제로 메시지를 보냈습니다. 브로커가 생성되고 실행되도록 createbrokerservice를 작성했습니다.내장 브로커 ActiveMQ 구성
이 잘못 는@Configuration
@EnableJms
public class JMSConfig {
public static final String DEFAULT_BROKER_URL = "tcp://localhost:61616";
public static final String COMMENT_QUEUE = "comment-queue";
@Bean
public void createBrokerService() throws Exception {
BrokerService broker = new BrokerService();
TransportConnector connector = new TransportConnector();
connector.setUri(new URI("tcp://localhost:61616"));
broker.addConnector(connector);
broker.start();
}
@Bean
public ActiveMQConnectionFactory connectionFactory(){
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory();
connectionFactory.setBrokerURL(DEFAULT_BROKER_URL);
return connectionFactory;
}
@Bean
public JmsTemplate jmsTemplate(){
JmsTemplate template = new JmsTemplate();
template.setConnectionFactory(connectionFactory());
template.setDefaultDestinationName(COMMENT_QUEUE);
template.setPubSubDomain(true);
template.setSessionTransacted(true);
return template;
}
코드 검토를 위해 https://codereview.stackexchange.com/이 있습니다. – ventiseis
제 질문은 약간 다릅니다. createBrokerservice()의 명령문이 실행 되나요? 그래서 그 브로커를 게시하고 구독 할 수 있습니다. – africandrogba