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的简单应用】开启邮箱服务,获得授权码
文章图片
//导入依赖
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("发送成功");
}
}
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。
- 家乡的那条小河
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量