2017-09-07 2 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

関連する問題