1. 程式人生 > >spring boot 學習 ActiveMQ

spring boot 學習 ActiveMQ

window環境本地搭建環境

 ActiveMQ官網下載地址:http://activemq.apache.org/download.html

安裝完成後啟動

 

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-activemq</artifactId>
</dependency>

啟動類:

@SpringBootApplication
@EnableJms
public class testApplication {
    Logger logger= LogManager.getLogger(getClass());
    @Bean
    public ActiveMQQueue queue() {
        return new ActiveMQQueue("promoteAct");
    }
//沒有這段注入可能會出錯
    @Bean
    public ConnectionFactory connectionFactory(){
        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory();
        connectionFactory.setBrokerURL("tcp://localhost:61616");
        connectionFactory.setUserName("admin");
        connectionFactory.setPassword("admin");
        logger.info("連線mq完成");
        return connectionFactory;
    }
    @Bean
    public JmsTemplate genJmsTemplate(){
        return new JmsTemplate(connectionFactory());

    }
    @Bean
    public JmsMessagingTemplate jmsMessageTemplate(){
        return new JmsMessagingTemplate(connectionFactory());
    }


    public static void main(String[] args) {
        SpringApplication.run(LinuxtestApplication.class, args);
    }

 

/**
 * 生產者
 */
@RestController
public class Productor {
    @Autowired
    private JmsMessagingTemplate jmsMessagingTemplate;

    @Autowired
    private ActiveMQQueue queue;
    @RequestMapping("/sendMsg")
    public void send(String msg) {


        jmsMessagingTemplate.convertAndSend(this.queue, msg);
    }

}
/**
 * 消費者
 */
@Component
public class Customer {
    Logger logger = LogManager.getLogger(getClass());

    @JmsListener(destination = "promoteAct")
    public void receiveQueue(String message) {
        logger.info("訊息已經消費 message:" + message);
    }

}