Redis的简单应用

Springboot整合Redis

//导入依赖

            org.springframework.boot
            spring-boot-starter-data-redis


//文件配置
spring:
  redis:
    host: 127.0.0.1
    port: 6379
    password: root

//编写一个自己的RedisTemplate
package com.shuaikb.config;


import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;

@Configuration
public class RedisConfig {

    @Bean
    public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        RedisTemplate template = new RedisTemplate();
        template.setConnectionFactory(redisConnectionFactory);
        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
        ObjectMapper om = new ObjectMapper();
        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        //Jackson ObjectMapper 中的 enableDefaultTyping 方法由于安全原因,从 2.10.0 开始标记为过期,建议用 activateDefaultTyping 方法代替
        //om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
        om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);
        jackson2JsonRedisSerializer.setObjectMapper(om);
        StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();

        //key 采用的String 的序列化方式
        template.setKeySerializer(stringRedisSerializer);
        //hashde key 也采用String的序列化方式
        template.setHashKeySerializer(stringRedisSerializer);
        //value 序列化方式采用jackson
        template.setValueSerializer(jackson2JsonRedisSerializer);
        //hash 的 value序列化方式采用jackson
        template.setHashKeySerializer(jackson2JsonRedisSerializer);
        //初始化配置
        template.afterPropertiesSet();
        return template;
    }


}

邮件发送

开启邮箱服务,获得授权码

Redis的简单应用_第1张图片

//导入依赖

            org.springframework.boot
            spring-boot-starter-mail


//配置文件
spring:
  mail:
    # 配置 SMTP 服务器地址
    host: smtp.qq.com
    # 发送者邮箱
    username: ***********@qq.com
    # 配置密码,注意不是真正的密码,而是刚刚申请到的授权码
    password: ******************
    # 端口号465或587
    port: 465
    # 默认的邮件编码为UTF-8
    default-encoding: UTF-8
    # 配置SSL 加密工厂
    properties:
      mail:
        smtp:
          ssl:
            enable: true
        #表示开启 DEBUG 模式,这样,邮件发送过程的日志会在控制台打印出来,方便排查错误
        debug: true


//发送过程
@Autowired
JavaMailSender javaMailSender;

public void mali(){
        // 构建一个邮件对象
        SimpleMailMessage message = new SimpleMailMessage();
        // 设置邮件主题
        message.setSubject("这是一封测试邮件");
        // 设置邮件发送者,这个跟application.yml中设置的要一致
        message.setFrom("********@qq.com");
        // 设置邮件接收者,可以有多个接收者,中间用逗号隔开,以下类似
        message.setTo("********@qq.com");
        // 设置邮件的正文
        message.setText("邮件正文");
        // 发送邮件
        javaMailSender.send(message);
        System.out.println("发送成功");
    }

设置时间过期验证码

@Component
public class EmailSend {
    @Autowired
    JavaMailSender javaMailSender;
    String[] codees={"0","1","2","3","4","5","6","7","8","9"};

    @Autowired
    RedisUtils redisUtils;


    public void send(String toEmail,String subject){
        // 构建一个邮件对象
        SimpleMailMessage message = new SimpleMailMessage();
        // 设置邮件主题
        message.setSubject(subject);
        // 设置邮件发送者,这个跟application.yml中设置的要一致
        message.setFrom("********@qq.com");
        // 设置邮件接收者,可以有多个接收者,中间用逗号隔开,以下类似
        message.setTo(toEmail);
        // 设置邮件的正文
        String code="";
        for(int i=0;i<6;i++){
            int j=(int)(Math.random()*10);
            code+=codees[j];
        }
        message.setText(code);

        // 发送邮件
        javaMailSender.send(message);

        redisUtils.set(toEmail,code,300);
        System.out.println("发送成功");

    }
}

你可能感兴趣的:(javanosqlredis)