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