Springboot整合Redis

//导入依赖<dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-data-redis</artifactId></dependency>//文件配置spring:  redis:    host: 127.0.0.1    port: 6379    password: root//编写一个本人的RedisTemplatepackage 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;@Configurationpublic class RedisConfig {    @Bean    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {        RedisTemplate<String, Object> 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;    }}

邮件发送

开启邮箱服务,取得受权码

//导入依赖<dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-mail</artifactId></dependency>//配置文件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//发送过程@AutowiredJavaMailSender 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("发送胜利");    }

设置工夫过期验证码

@Componentpublic 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("发送胜利");    }}