2017-09-07 5 views
0

이것은 내포 된 브로커에 메시지를 보내는 구성입니다. 또한 첫 번째 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; 
    } 
+0

코드 검토를 위해 https://codereview.stackexchange.com/이 있습니다. – ventiseis

+0

제 질문은 약간 다릅니다. createBrokerservice()의 명령문이 실행 되나요? 그래서 그 브로커를 게시하고 구독 할 수 있습니다. – africandrogba

답변

0
@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은 당신이 그것을 시작할 수 있도록 응용 프로그램에서 어딘가에 브로커 인스턴스를 사용하여 브로커를 반환해야합니다.

+0

알았어요. 나는 main 메소드에 코드를 넣었다. – africandrogba

+0

@ africandrogba 올바른지 확인하십시오. ;) – sarahTheButterFly