1.定义一个绑定类
public interface SyncSchoolBinding {
String OUTPUT = "school-plan-center-syncSchool-output";
String INPUT = "school-plan-center-syncSchool-input";
/**
* 消息订阅
*
* @return 消息订阅
*/
@Input(INPUT)
SubscribableChannel input();
/**
* 通道
*
* @return 通道
*/
@Output(OUTPUT)
MessageChannel output();
}
2.发送消息
@Autowired
private SyncSchoolBinding syncSchoolBinding;
syncSchoolBinding.output().send(MessageBuilder.withPayload(schoolDTO).build());
3.接收消息并处理
public class SyncSchoolHandlerImpl implements SyncSchoolHandler {
@StreamListener(SyncSchoolBinding.INPUT)
@Override
public void listen(SchoolDTO schoolDTO) {
log.info("接收到的学校信息:{}",JSON.toJSONString(schoolDTO));
}
}
4.配置文件添加配置
spring.cloud.stream.bindings.school-plan-center-syncSchool-input.destination=school-plan-center-syncSchool
spring.cloud.stream.bindings.school-plan-center-syncSchool-output.destination=school-plan-center-syncSchool
spring.cloud.stream.bindings.school-plan-center-syncSchool-input.group=${spring.application.name}
5.启动类添加注解
@EnableBinding({SyncSchoolBinding.class,SyncTeacherBinding.class})