Java进阶架构师之路JavaJava 杂谈

springboot整合 rabbitmq

2019-06-29  本文已影响2人  88b61f4ab233

1 添加依赖

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

2 添加配置文件

rabbitmq:
  password: admin
  port: 5672
  host: 139.199.33.78
  username: admin

3 创建配置类 实例化队列 交换机 且绑定

@Configuration
public class SenderConf3 {

    @Bean(name="Amessage")
    public Queue AMessage() {
        return new Queue("fanout.A");
    }


    @Bean(name="Bmessage")
    public Queue BMessage() {
        return new Queue("fanout.B");
    }

    @Bean(name="Cmessage")
    public Queue CMessage() {
        return new Queue("fanout.C");
    }

    @Bean
    FanoutExchange fanoutExchange() {
        return new FanoutExchange("fanoutExchange");//配置广播路由器
    }

    @Bean
    Binding bindingExchangeA(@Qualifier("Amessage") Queue AMessage, FanoutExchange fanoutExchange) {
        return BindingBuilder.bind(AMessage).to(fanoutExchange);
    }

    @Bean
    Binding bindingExchangeB(@Qualifier("Bmessage") Queue BMessage, FanoutExchange fanoutExchange) {
        return BindingBuilder.bind(BMessage).to(fanoutExchange);
    }

    @Bean
    Binding bindingExchangeC(@Qualifier("Cmessage") Queue CMessage, FanoutExchange fanoutExchange) {
        return BindingBuilder.bind(CMessage).to(fanoutExchange);
    }

}

4 创建sender类发送消息

@Component
public class HelloSender {
    @Autowired
    private AmqpTemplate template;

    public void send() {
        template.convertAndSend("queue","hello,rabbit~");
    }

    public void send2(){
        template.convertAndSend("exchange","topic.message","hello,rabbit1");
    }
    public void send3(){
        template.convertAndSend("fanoutExchange","topic.message","hello,rabbit2");
    }

}

5 适当的方法调用sender类

@RequestMapping("/userLogin")
public String login(HttpSession session, String username, String password, HttpServletRequest request, HttpServletResponse response, Model model) throws Exception {
    List<Userinfo> list = service.findUserByUserName(username);
    if (list.size() > 0 && list != null) {
        Userinfo user = list.get(0);
        if (user.getPassword().equals(MD5Utils.md5(password))) {
            if (user.getUsertype() != Constant.ADMIN) {
                model.addAttribute("info", "权限不足");
                return "login";
            }
            user.setUserstatus(1);
            service.update(user);
            helloSender.send();
            helloSender.send2();
            helloSender.send3();
            session.setAttribute("loginUser", user);
            return "home";
        } else {
            model.addAttribute("info", "用户名或密码错误");
            return "login";
        }
    }
    model.addAttribute("info", "用户名或密码错误");
    return "login";
}
上一篇 下一篇

猜你喜欢

热点阅读