《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
pom文件:
<?xml version="1.0" encoding="UTF-8"?><project xmlns=“http://maven.apache.org/POM/4.0.0”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>
4.0.0
org.example
rabbitMQ
1.0-SNAPSHOT
pom
provider
consumer
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.4.1</spring-boot.version>
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-starter-amqp
org.springframework.boot
spring-boot-dependencies
${spring-boot.version}
pom
import
2、子项目:新建发布者,生产者
pom文件:
<?xml version="1.0" encoding="UTF-8"?><project xmlns=“http://maven.apache.org/POM/4.0.0” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd”>
4.0.0
com.lv
code
0.0.1-SNAPSHOT
provider
Demo project for Spring Boot
rabbitMQ
org.example
1.0-SNAPSHOT
org.apache.maven.plugins
maven-compiler-plugin
3.8.1
1.81.8
UTF-8
org.springframework.boot
spring-boot-maven-plugin
2.4.1
com.lv.code.ProviderApplication
repackage
repackage
3、子项目:新建发布者,消费者
pom文件:
<?xml version="1.0" encoding="UTF-8"?><project xmlns=“http://maven.apache.org/POM/4.0.0” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd”>
4.0.0
com.lv
code
0.0.1-SNAPSHOT
consumer
Demo project for Spring Boot
rabbitMQ
org.example
1.0-SNAPSHOT
org.springframework.boot
spring-boot-starter-web
org.apache.maven.plugins
maven-compiler-plugin
3.8.1
1.81.8
UTF-8
org.springframework.boot
spring-boot-maven-plugin
2.4.1
com.lv.code.ConsumerApplication
repackage
repackage
4、连接消息队列
在生产者中导入yml文件:
server:
port: 8080
spring:
application:
name: xx
rabbitmq:
host: 192.168.218.130
password: 123456
port: 5672
username: springboot
virtual-host: my_vhost
生产者中新建文件RabbitConfig:此类与容器一起启动的时候,会产生firstQueue队列
package com.lv.code;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@SuppressWarnings(“all”)
public class RabbitConfig {
@Bean
public Queue firstQueue() {
return new Queue(“firstQueue”);
}
}
生产者中新建发送类:sender
package com.lv.code;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
@SuppressWarnings(“all”)
public class Sender {
@Autowired
private AmqpTemplate rabbitTemplate;
public void sendFirst() {
rabbitTemplate.convertAndSend(“firstQueue”, “Hello World”);
}
}
生产者测试类运行:
package com.lv.code;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class ProviderApplicationTests {
@Autowired
private Sender sender;
@Test
void contextLoads() {
sender.sendFirst();
}
}
出现一个队列:ready那显示1,表示具有一条信息没有被接收
5、消费者接收信息
消费者内导入yml文件:
server:
port: 8081
spring:
application:
name: consumer
rabbitmq:
host: 192.168.218.130
password: 123456
port: 5672
username: springboot
virtual-host: my_vhost
写一个接收者:Receiver
package com.lv.code;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
@Component
@SuppressWarnings(“all”)
@Slf4j
//类监听
@RabbitListener(queues = “firstQueue”)
public class Receiver {
@RabbitHandler
public void process(String msg) {
log.warn(“接收到:” + msg);
}
}
运行启动类,接收到信息:
6、完成自定义数据发送
创建一个实体类:
package com.lv.code;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@SuppressWarnings(“all”)
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User{
private String username;
private String userpwd;
}
在发送类新增个方法:Sender
public void sendFirst(User user) {
rabbitTemplate.convertAndSend(“firstQueue”, user);
}
测试类中的方法:
@Test
void contextLoads() {
sender.sendFirst(new User(“aa”,“bb”));
}
生产者发送不了:简单的消息转换器只支持string类型,byte数组类型以及序列化的数据,但是user类不是序列化的。
所以给user实现接口,使它序列化:
消费者接受不了:由于消费者接收的是string类
将user实体类导入到消费者内,并修改接收类的方法,接收对象:
在此处发送的东西不仅字段要相同,包名也要相同,
**解决方案:①、**可以使用DTO来发送;
②、或者可以将对象先转换为json数据,发到消费者后再转换为对象
我们使用第二种方案:
发送类新增方法:
public void sendFirst(String json) {
rabbitTemplate.convertAndSend(“firstQueue”, json);
}
生产者测试类:
package com.lv.code;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.SneakyThrows;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
最后
分享一套我整理的面试干货,这份文档结合了我多年的面试官经验,站在面试官的角度来告诉你,面试官提的那些问题他最想听到你给他的回答是什么,分享出来帮助那些对前途感到迷茫的朋友。
面试经验技巧篇
- 经验技巧1 如何巧妙地回答面试官的问题
- 经验技巧2 如何回答技术性的问题
- 经验技巧3 如何回答非技术性问题
- 经验技巧4 如何回答快速估算类问题
- 经验技巧5 如何回答算法设计问题
- 经验技巧6 如何回答系统设计题
- 经验技巧7 如何解决求职中的时间冲突问题
- 经验技巧8 如果面试问题曾经遇见过,是否要告知面试官
- 经验技巧9 在被企业拒绝后是否可以再申请
- 经验技巧10 如何应对自己不会回答的问题
- 经验技巧11 如何应对面试官的“激将法”语言
- 经验技巧12 如何处理与面试官持不同观点这个问题
- 经验技巧13 什么是职场暗语
面试真题篇
- 真题详解1 某知名互联网下载服务提供商软件工程师笔试题
- 真题详解2 某知名社交平台软件工程师笔试题
- 真题详解3 某知名安全软件服务提供商软件工程师笔试题
- 真题详解4 某知名互联网金融企业软件工程师笔试题
- 真题详解5 某知名搜索引擎提供商软件工程师笔试题
- 真题详解6 某初创公司软件工程师笔试题
- 真题详解7 某知名游戏软件开发公司软件工程师笔试题
- 真题详解8 某知名电子商务公司软件工程师笔试题
- 真题详解9 某顶级生活消费类网站软件工程师笔试题
- 真题详解10 某知名门户网站软件工程师笔试题
- 真题详解11 某知名互联网金融企业软件工程师笔试题
- 真题详解12 国内某知名网络设备提供商软件工程师笔试题
- 真题详解13 国内某顶级手机制造商软件工程师笔试题
- 真题详解14 某顶级大数据综合服务提供商软件工程师笔试题
- 真题详解15 某著名社交类上市公司软件工程师笔试题
- 真题详解16 某知名互联网公司软件工程师笔试题
- 真题详解17 某知名网络安全公司校园招聘技术类笔试题
- 真题详解18 某知名互联网游戏公司校园招聘运维开发岗笔试题
资料整理不易,点个关注再走吧
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
业拒绝后是否可以再申请
- 经验技巧10 如何应对自己不会回答的问题
- 经验技巧11 如何应对面试官的“激将法”语言
- 经验技巧12 如何处理与面试官持不同观点这个问题
- 经验技巧13 什么是职场暗语
[外链图片转存中…(img-QMDdjfMc-1714739909524)]
面试真题篇
- 真题详解1 某知名互联网下载服务提供商软件工程师笔试题
- 真题详解2 某知名社交平台软件工程师笔试题
- 真题详解3 某知名安全软件服务提供商软件工程师笔试题
- 真题详解4 某知名互联网金融企业软件工程师笔试题
- 真题详解5 某知名搜索引擎提供商软件工程师笔试题
- 真题详解6 某初创公司软件工程师笔试题
- 真题详解7 某知名游戏软件开发公司软件工程师笔试题
- 真题详解8 某知名电子商务公司软件工程师笔试题
- 真题详解9 某顶级生活消费类网站软件工程师笔试题
- 真题详解10 某知名门户网站软件工程师笔试题
- 真题详解11 某知名互联网金融企业软件工程师笔试题
- 真题详解12 国内某知名网络设备提供商软件工程师笔试题
- 真题详解13 国内某顶级手机制造商软件工程师笔试题
- 真题详解14 某顶级大数据综合服务提供商软件工程师笔试题
- 真题详解15 某著名社交类上市公司软件工程师笔试题
- 真题详解16 某知名互联网公司软件工程师笔试题
- 真题详解17 某知名网络安全公司校园招聘技术类笔试题
- 真题详解18 某知名互联网游戏公司校园招聘运维开发岗笔试题
[外链图片转存中…(img-ZKv7nEvh-1714739909524)]
资料整理不易,点个关注再走吧
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!