springboot整合rabbbitmq--注解方式+yml配置

Posted myWang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot整合rabbbitmq--注解方式+yml配置相关的知识,希望对你有一定的参考价值。

maven依赖

<!--rabbitmq-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>
        <!--mail依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

 

1. 测试方法 controller  生产者

    @GetMapping("/test1")
    public void test(HttpServletRequest request) throws Exception 

        String authorization = request.getHeader("Authorization");
        String username = (String) JwtUtils.parseJWT(authorization).get("username");
        HashMap<String, String> map = new HashMap<>();
        map.put("username",username);
        map.put("msg","开始发送邮件");
        try 
            rabbitTemplate.convertAndSend("name_exchange","name_routingKey",map);//指定交换机 路由key
         catch (AmqpException e) 
            log.info("生产者失败");
        
        log.info("test执行了");
    

2 .消费者--监听

@Component
public class Listener 
    @Autowired
    private JavaMailSender javaMailSender;

    @RabbitListener(bindings = @QueueBinding(
            value = @Queue(value = "scan_queue", durable = "false"), //队列名  是否持久化
            exchange = @Exchange(
                    value = "name_exchange",  //交换机配置
                    ignoreDeclarationExceptions = "true",
                    type = ExchangeTypes.TOPIC
            ),
            key = "scan_routingKey"))
    public void listen(Map map) 

        System.out.println("接收到消息:" + map.get("msg"));
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setSubject("尊敬的用"+map.get("username")+"户您好!");
        simpleMailMessage.setText("扫描完毕");
        simpleMailMessage.setTo("oooooo@163.com");
        simpleMailMessage.setFrom("xxxxxxxxx@163.com");
        javaMailSender.send(simpleMailMessage);
    

邮件和rabbitmq配置

  mail:
    host: smtp.163.com
    protocol: smtp
    default-encoding: utf-8
    password: ******
    username: *****@163.com
    port: 25
  rabbitmq:
    username: dev
    password: ****
    host: localhost
    port: 5672
    virtual-host: /dev
    template:
      retry:
        enabled: true
        initial-interval: 2000ms
        max-interval: 10000ms
        multiplier: 2
    publisher-confirm-type: correlated

 

SpringBoot-注解方式整合Mybatis

SpringBoot整合Mybatis

一.注解方式整合Mybatis

1.创建Air的Mapper接口

@ComponentScan
public interface AirMapper 

    List<Air> selectAll(); 

    Air selectOneById(Integer id);

2.添加Mybatis注解

针对增删改查:@Insert,@Delete,@Update,@Select

还是需要在启动类中添加@MapperScan注解

@ComponentScan
public interface AirMapper 

    @Select("select * from air where id =#id")
    Air selectOneById(@Param("id") Integer id);

3.配置日志

// yml文件
logging:
  level:
    XXX.mapper: DEBUG

# 连接数据库的信息
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql:///air
    username: root
    password: 123
    type: com.alibaba.druid.pool.DruidDataSource
#  mvc:
#    # 视图的前缀和后缀
#    view:
#      prefix: /
#      suffix: .html

    #禁用缓存
  thymeleaf:
    cache: false


mybatis:
  # 扫描映射文件
  mapper-locations: classpath:mapper/*.xml
  # 配置别名扫描的包
  type-aliases-package: boot.entity
  configuration:
    # 开启驼峰映射配置
    map-underscore-to-camel-case: true

logging:
  level:
    boot.mapper: DEBUG

4.测试查看日志

@SpringBootTest
class AirMapperTest 

    @Autowired
    private AirMapper airMapper;

    @Test
    void selectAll() 
        List<Air> airs = airMapper.selectAll();
        for (Air air : airs) 
            System.out.println(air);
        
    

    @Test
    void selectOneById() 
        Air air = airMapper.selectOneById(1);
        System.out.println(air);
    

以上是关于springboot整合rabbbitmq--注解方式+yml配置的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot-注解方式整合Mybatis

SpringBoot整合Mybatis方式2:使用注解方式整合Mybatis

springboot整合mybatis(注解)

SpringBoot 快速整合Mybatis(去XML化+注解进阶)

SpringBoot整合Mybatis非注解版

SpringBoot整合定时任务----Scheduled注解实现(一个注解全解决)