Redis配置类
实现序列化
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate redisTemplate = new RedisTemplate<>();
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
redisTemplate.setConnectionFactory(redisConnectionFactory);
return redisTemplate;
}
@Bean
public DefaultRedisscript script() {
DefaultRedisscript redisscript = new DefaultRedisscript<>();
redisscript.setLocation(new ClassPathResource("lock.lua"));
redisscript.setResultType(Boolean.class);
return redisscript;
}
}
将用户信息存入session
redisTemplate.opsForValue().set("user:" + ticket, user);
UserServiceImpl
根据cookie获取用户
@Override
public User getUserBycookie(String userTicket, HttpServletRequest request, HttpServletResponse response) {
if (!StringUtils.hasText(userTicket)) {
return null;
}
User user = (User) redisTemplate.opsForValue().get("user:" + userTicket);
if (user != null) {
cookieUtil.setcookie(request, response, "userTicket", userTicket);
}
return user;
}
GoodsController
@RequestMapping("/toList")
public String toList(HttpServletRequest request, HttpServletResponse response, Model model, @cookievalue("userTicket") String ticket) {
if (StringUtils.isEmpty(ticket)) {
return "login";
}
User user = userService.getUserBycookie(ticket, request, response);
if (null == user) {
return "login";
}
model.addAttribute("user", user);
return "goodsList";
}



