《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
queue: queue_mq # 点对点消费名字
topic: topic_mq # 订阅式消费名字
5、配置Bean
@Configuration
@EnableJms
public class ActiveMqConfig {
@Value(“${queue}”)//对应yml文件中定义的queue
private String queue;
@Value(“${topic}”)//对应yml文件中定义的topic
private String topic;
/**
-
创建点对点的队列 一个消息只能被一个消费者消费 — 一对一
-
@return
*/
@Bean
public Queue queue(){
return new ActiveMQQueue(queue);
}
/**
-
创建订阅式的队列 一个消息可以被多个消费者消费 — 一对多
-
@return
*/
@Bean
public Topic topic(){
return new ActiveMQTopic(topic);
}
}
6、创建生产者(Queue+Topic)
@RestController
public class ProducerController {
@Autowired
private Queue queue;
@Autowired
private Topic topic;
@Autowired
private JmsMessagingTemplate jmsMessagingTemplate;
/**
-
点对点的消息队列的生产者
-
@param string
*/
@GetMapping(“/queue”)
public void sendMsgQueue(@RequestParam String string){
System.out.println("消息已经发送,准备被消费,消息为 —> "+string);
jmsMessagingTemplate.convertAndSend(queue,string);
}
/**
-
一对多的消息队列的生产者
-
@param string
*/
@GetMapping(“/topic”)
public void sendMsgTopic(@RequestParam String string){
System.out.println("消息已经发送,准备被消费,消息为 —> "+string);
jmsMessagingTemplate.convertAndSend(topic,string);
}
}
7、创建消费者(Topic模式下)
@Component
public class TopicConsumer {
/**
-
监听消息,名字为生产者发送的名字,要一致,不然监听不到.
-
因为是订阅者模式,可以有多个消费者,我们这里举两个来进行测试
-
@param string
*/
@JmsListener(destination = “${topic}”)
public void consumerTopicOne(String string){
System.out.println("我是消费者一号:消费消息成功,信息为—> "+string);
}
@JmsListener(destination = “${topic}”)
public void consumerTopicTwo(String string){
System.out.println("我是消费者二号:消费消息成功,信息为—> "+string);
}
}
8、测试结果(Topic模式下)
9、网页版查看是否成功(Topic模式下)
网站地址 http://127.0.0.1:8161/admin/ 账号密码都是admin
10、创建消费者(Queue模式下)
首先把yml文件中的配置修改为Queue:pub-sub-domain: false
@Component
public class QueueConsumer {
/**
-
监听消息,名字为生产者发送的名字,要一致,不然监听不到.
-
因为是队列模式,只能消费者
-
@param string
*/
@JmsListener(destination = “${queue}”)
public void consumerQueue(String string){
System.out.println("消费消息成功,信息为—> "+string);
}
最后,附一张自己面试前准备的脑图:
面试前一定少不了刷题,为了方便大家复习,我分享一波个人整理的面试大全宝典
- Java核心知识整理
- Spring全家桶(实战系列)
Step3:刷题
既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。
以下是我私藏的面试题库:
很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。
最后祝愿各位身体健康,顺利拿到心仪的offer!
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
以下是我私藏的面试题库:**
[外链图片转存中…(img-mwch0JU5-1714669844547)]
很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。
最后祝愿各位身体健康,顺利拿到心仪的offer!
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!