笔记"/>
Spring Data redis和amqpRebbitmq笔记
springboot + springcloud基本配置
父工程配置pom依赖管理:
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.6.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><spring-cloud.version>Finchley.SR2</spring-cloud.version><mybatis.starter.version>1.3.2</mybatis.starter.version><mapper.starter.version>2.0.2</mapper.starter.version><druid.starter.version>1.1.9</druid.starter.version><mysql.version>5.1.32</mysql.version><pageHelper.starter.version>1.2.3</pageHelper.starter.version><leyou.latest.version>1.0.0-SNAPSHOT</leyou.latest.version><fastDFS.client.version>1.26.1-RELEASE</fastDFS.client.version></properties><dependencyManagement><dependencies><!-- springCloud --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><!-- mybatis启动器 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis.starter.version}</version></dependency><!-- 通用Mapper启动器 --><dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId><version>${mapper.starter.version}</version></dependency><!-- 分页助手启动器 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>${pageHelper.starter.version}</version></dependency><!-- mysql驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><!--FastDFS客户端--><dependency><groupId>com.github.tobato</groupId><artifactId>fastdfs-client</artifactId><version>${fastDFS.client.version}</version></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
子工具工程的pom:
<dependencies><!--spring data redis 启动器 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><!--spring data amqp 启动器 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.apachemons</groupId><artifactId>commons-lang3</artifactId></dependency></dependencies>
application.yml:
server:port: 8085
spring:application:name: user-servicedatasource:url: jdbc:mysql://127.0.0.1:3306/leyouusername: rootpassword: 12345driver-class-name: com.mysql.jdbc.Driverredis:host: 127.0.0.1rabbitmq:virtual-host: /leyouhost: 127.0.0.1username: leyoupassword: leyou
eureka:client:service-url:defaultZone: http://127.0.0.1:10086/eurekainstance:lease-renewal-interval-in-seconds: 5lease-expiration-duration-in-seconds: 15mybatis:type-aliases-package: com.leyou.user.pojo
redis的使用:
(1)引入spring data redis依赖
(2)注入StringRedisTemplate:
@Autowiredprivate StringRedisTemplate redisTemplate;
(3)调用该类中的方法:
//把验证码保存到redis中(5分钟)
this.redisTemplate.opsForValue().set(KEY_PREFIX + phone, 123456, code, 5, TimeUnit.MINUTES);
RabbitMQ的使用:
(1)引入spring data amqp依赖
(2)注入AmqpTemplate:
@Autowired
private AmqpTemplate amqpTemplate;
(3)生产者(有生产者就必须要有消费者):
//发送消息到rabbitMQ
HashMap<String, String> msg = new HashMap<>();
msg.put("phone", phone);
msg.put("code", code);
amqpTemplate.convertAndSend("leyou.sms.exchange", "verifycode.sms", msg);
(4)消费者(一旦监听到有exchange和key跟该方法上注解保持一致,就直接执行该方法):
@Component
public class SmsListener {@Autowiredprivate SmsUtils smsUtils;@Autowiredprivate SmsProperties smsProperties;@RabbitListener(bindings = @QueueBinding(value = @Queue(value = "leyou.sms.queue", durable = "true"),exchange = @Exchange(value = "leyou.sms.exchange", ignoreDeclarationExceptions = "true"),key = {"verifycode.sms"}))public void sendSms(Map<String, String> msg) throws ClientException {if(CollectionUtils.isEmpty(msg)){return ;}String phone = msg.get("phone");String code = msg.get("code");if(StringUtils.isNoneBlank(phone) && StringUtils.isNoneBlank(code)){this.smsUtils.sendSms(phone, code, this.smsProperties.getSignName(), this.smsProperties.getVerifyCodeTemplate());}}}
更多推荐
Spring Data redis和amqpRebbitmq笔记
发布评论