Spring Boot 2.0.0.RELEASE版本已经发布,喜欢尝鲜的幻幻马上试了一下。

一、升级pom文件

Spring Session的版本也升级到了2.0.2.RELEASE

    org.springframework.session    spring-session-data-redis    2.0.2.RELEASE

二、配置

1.Spring Session的配置

不同于上一个版本,2.0版本的配置都放在配置文件里了;内部对redis的支持,从jedis换到了Lettuce。

# Srping Session
spring.session.store-type=redis
# Session timeout in seconds.
server.session.timeout=7200
# Sessions flush mode.
spring.session.redis.flush-mode=
# Namespace for keys used to store sessions.
spring.session.redis.namespace=

2.redis配置

#redis
spring.redis.database=0
# Redis服务器地址
spring.redis.host=127.0.0.1
# Redis服务器连接密码(默认为空)
spring.redis.password=
# Redis服务器连接端口
spring.redis.port=6379
spring.redis.lettuce.pool.max-active=8
spring.redis.lettuce.pool.max-wait=-1
spring.redis.lettuce.shutdown-timeout=100
spring.redis.lettuce.pool.max-idle=8
spring.redis.lettuce.pool.min-idle=0

三、修改代码

原本,我们Jedis的配置是这样的:最简单的Spring Cloud配置Redis方法

现在变成了

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.session.config.annotation.web.http.EnableSpringHttpSession;

/**
 * @author 幻幻Fate
 * @create 2018/03/14
 * @since
 */
@EnableSpringHttpSession
public class HttpSessionConfig {

    @Bean
    @ConfigurationProperties(prefix = "spring.redis")//官网上没有这一行,但不加会找不到配置信息,可能是官网redis的配置项的key也变更了,后续如果找到了再更新
    public LettuceConnectionFactory connectionFactory() {
        return new LettuceConnectionFactory();
    }

    //这是RestfulApi项目用的
//    @Bean
//    public HttpSessionIdResolver httpSessionIdResolver() {
//        return HeaderHttpSessionIdResolver.xAuthToken();
//    }
}
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;

/**
 * @author 幻幻Fate
 * @create 2018/03/14
 * @since
 */
@Configuration
@EnableCaching
public class RedisConfig {

    private static final Logger LOG = LoggerFactory.getLogger(RedisConfig.class);

    @Autowired
    private LettuceConnectionFactory lettuceConnectionFactory;

    @Bean
    @Primary
    public RedisTemplate redisTemplate() {
        StringRedisTemplate template = new StringRedisTemplate(lettuceConnectionFactory);
        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
        ObjectMapper om = new ObjectMapper();
        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
        jackson2JsonRedisSerializer.setObjectMapper(om);
        template.setValueSerializer(jackson2JsonRedisSerializer);
        template.afterPropertiesSet();
        return template;
    }
}


赞助本站,网站的持续发展离不开你们的支持!一分也是爱ヾ(◍°∇°◍)ノ゙
 本文链接: ,花了好多脑细胞写的,转载请注明链接喔~~
登陆
      正在加载评论