tostring 怎么用

我们按照之前的经验,我们这里可以创建3个web程序,一个用作消息生产者,一个作为消费者,还有一个作为存放通用代码类,并将之改造成Spring Boot项目,具体过程略。

整个项目目录结构如下:

tostring 怎么用

一. 创建存放通用代码的common项目

这个项目中很简单,只有一个User类,并将该类实现序列化。

package com.yyg.boot.domain;

import lombok.Data;

import lombok.ToString;

import java.io.Serializable;

/**

* @Author 一一哥Sun

* @Date Created in 2020/4/14

* @Description Description

*/

@Data

@ToString

public class User implements Serializable {

private Long id;

private String username;

private String password;

}

tostring 怎么用

二. 创建消息生产者项目

1. 添加依赖包

<!--amqp消息队列的依赖包-->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-amqp</artifactId>

</dependency>

<dependency>

<groupId>comlfwwfMV.yyg.boot</groupId>

<artifactId>demo38_amqp_common</artifactId>

<version>1.0-SNAPSHOT</version>

</dependency>

2. 创建application.yml配置文件

spring:

application:

name: amqp-producer

rabbitmq:

host: localhost

port: 5672

username: guest

password: guest

3. 创建队列配置

package com.yyg.boot.config;

import org.springframework.amqp.core.Queue;

import org.springframewo原由网rk.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

/**

* @Author 一一哥Sun

* @Date Created in 2020/4/16

* @Description Description

*/

@Configuration

public class RabbitMQConfig {

//交换机和队列要进行绑定:

//默认的交换机是DirectExchange,

//每个交换机都需要利用路由键来和队列绑定在一起.

//如果采用的是Direc原由网tExchange交换机,默认情况下,队里的名字就是路由键的名字.

//该交换机是一对一的,一个消息被发送者发送出去之后,只能被一个消费者接受.

@Bean

public Queue queue(){

//firstRabbit,是队列的名字,

return new Queue("firstRabbit");

}

@Bean

public Queue objectQueue(){

//firstRabbit,是队列的名字,

return new Queue("firstObject");

}

}

4. 创建消息提供者

package com.yyg.boot.mq;

import com.yyg.boot.domain.User;

import lombok.extern.slf4j.Slf4j;

import org.springframework.amqp.core.AmqpTemplate;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Component;

import java.util.Date;

/**

* @Author 一一哥Sun

* @Date Created in 2020/4/16

* @Description Description

*/

@Slf4j

@Component

public class RabbitProducer {

@Autowired

private AmqpTemplate template;

public void sendMsg() {

//Message msg=new Message();

//template.send(msg);

//第一个参数是路由键

String content="hello,"+new Date();

log.warn("消息发送--->content={}",content);

template.convertAndSend("firstRabbit", content);

}

//发送对象

public void sendUser() {

User user=new User();

user.setId(1L);

user.setUsername("syc");

user.setPassword("123");

log.warn("消息发送--->User={}",user.toString());

template.convertAndSend("firstObject", user);

}

}

5. 创建测试用例

package com.yyg.boot;

import com.yyg.boot.mq.RabbitProducer;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.testwww.58yuanyou.com.context.SpringBootTest;

import org.springframework.test.context.junit4.SpringRunner;

/**

* @Author 一一哥Sun

* @Date Created in 2020/4/16

* @Description Description

*/

@RunWith(SpringRunner.class)

@SpringBootTest(classes = ProducerApplication.class)

public class FirstRabbitTest {

@Autowired

private RabbitProducer producer;

@Test

public void firstSendTest() {

for (int i = 0; i < 10; i++) {

producer.sendMsg();

}

}

}

6. 项目入口类

package com.yyg.boot;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

/**

* @Author 一一哥Sun

* @Date Created in 2020/4/16

* @Description Description

*/

@SpringBootApplication

public class ProducerApplication {

public static void main(String[] args){

SpringApplication.run(ProducerApplication.class,args);

}

}

7. 完整项目结构

tostring 怎么用

8. 启动测试类

执行测试类中的firstSendTest()测试方法.看到控制台打印如下日志.

tostring 怎么用

并且此时RabbitMQ中的firstRabbit队列中有10条待消费的消息.

tostring 怎么用

tostring 怎么用

三. 创建消息消费者模块

1. 创建application.yml配置文件

spring:

application:

name: amqp-consumer

rabbitmq:

host: localhost

port: 5672

username: guest

password: guest

2. 创建消息消费者

利用@RabbitListener和@RabbitHandler这两个注解,实现消息接收的监听。

package com.yyg.boot.mq;

import lombok.extern.slf4j.Slf4j;

import org.springframework.amqp.rabbit.annotation.RabbitHandler;

import org.springframework.amqp.rabbit.annotation.RabbitListener;

import org.springframework.stereotype.Component;

/**

* @Author www.58yuanyou.com一一哥Sun

* @Date Created in 2020/4/16

* @Description Description

*/

@Slf4j

@Component

public class RabbitConsumer {

@RabbitListener(queues = "firstRabbit")

@RabbitHandler

public void receiveMsg(String msg) {

log.warn("接受消息---->content:{}", msg);

}

}

3. 项目入口类

package com.yyg.boot;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

/**

* @Author 一一哥Sun

* @Date Created in 2020/4/16

* @Description Description

*/

@SpringBootApplication

public class ConsumerApplication {

public static void main(String[] args){

SpringApplication.run(ConsumerApplication.class,args);

}

}

4. 完整项目结构

tostring 怎么用

5. 启动项目,接收消息

项目启动后,可以看到控制台打印如下消息。

tostring 怎么用

此时可以看到,RabbitMQ控制台中firstRabbit队列中的消息已经被全部消费掉了,消息数量为0。

tostring 怎么用

tostring 怎么用

这里我们简单讲解了RabbitMQ的消息发送,还有更高级的功能,以后再讲解。

内容版权声明:除非注明原创否则皆为转载,再次转载请注明出处。

文章标题: tostring 怎么用

文章地址: www.58yuanyou.com/jiqiao/304101.html

相关推荐