cuốn sách gpt4 ai đã làm

spring-boot - Cách tách redis ứng dụng khởi động mùa xuân và phiên khởi động mùa xuân redis toàn cầu

In lại Tác giả: Hồ Xil Thời gian cập nhật: 2023-11-01 11:12:53 32 4
mua khóa gpt4 Nike

Theo như tôi biết, spring boot và spring session cung cấp cho chúng tôi cấu hình tự động một cửa, nhưng khi ứng dụng của tôi sử dụng redis phiên và redis bộ đệm ứng dụng, chúng không giống nhau về cách thiết lập, cảm ơn bạn rất nhiều; hồi đáp!

câu trả lời hay nhất

Trên thực tế, theo mặc định, cả spring-session và spring-cache đều được cấu hình bởi spring-boot có tên kết nốiNhà máy của RedisConnectionFactory đậu. Có hai cách để làm điều này.

  1. làm phiên mùa xuân sử dụng khác nhau kết nốiNhà máy Bean instance và để spring-cache sử dụng mặc định kết nốiNhà máy. Đây là một giải pháp ví dụ:

    @Cấu hình
    lớp công khai RedisHttpSessionConfig {

    @Bean
    StringRedisSerializer stringRedisSerializer() {
    trả về StringRedisSerializer mới();
    }

    @Bean
    RedisConnectionFactory redisHttpSessionConnectionFactory() {
    RedisConnectionFactory redisHttpSessionConnectionFactory = null;
    // ... thêm mã của bạn vào đây
    trả về redisHttpSessionConnectionFactory;
    }

    @Bean
    public RedisTemplate sessionRedisTemplate(
    RedisConnectionFactory redisHttpSessionConnectionFactory) {
    RedisTemplate template = new RedisTemplate();
    template.setKeySerializer(StringRedisSerializer mới());
    template.setHashKeySerializer(StringRedisSerializer mới());
    template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
    template.setDefaultSerializer(GenericJackson2JsonRedisSerializer());
    template.setConnectionFactory(redisHttpSessionConnectionFactory);
    trả lại mẫu;
    }
    }
  2. cho phép bộ đệm mùa xuân sử dụng khác nhau kết nốiNhà máy phiên bản Bean, hãy để phiên mùa xuân sử dụng mặc định kết nốiNhà máy. Đây là một giải pháp ví dụ:

    @Cấu hình
    lớp công khai RedisCacheConfig {

    @Bean
    StringRedisSerializer stringRedisSerializer() {
    trả về StringRedisSerializer mới();
    }

    @Bean
    RedisConnectionFactory redisCacheConnectionFactory() {
    RedisConnectionFactory redisCacheConnectionFactory = null;
    // ... thêm mã của bạn vào đây
    trả về redisCacheConnectionFactory;
    }

    @Bean
    RedisTemplate redisTemplate(RedisConnectionFactory redisCacheConnectionFactory) {
    RedisTemplate redisTemplate = new RedisTemplate();
    redisTemplate.setConnectionFactory(redisCacheConnectionFactory);
    redisTemplate.setKeySerializer(this.stringRedisSerializer());
    redisTemplate.setValueSerializer(genericJackson2JsonRedisSerializer mới());
    trả lại redisTemplate;
    }

    @Bean(name = "stringRedisTemplate")
    public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisCacheConnectionFactory) ném UnknownHostException {
    StringRedisTemplate stringRedisTemplate = new StringRedisTemplate();
    stringRedisTemplate.setConnectionFactory(redisCacheConnectionFactory);
    stringRedisTemplate.setKeySerializer(this.stringRedisSerializer());
    stringRedisTemplate.setValueSerializer(genericJackson2JsonRedisSerializer mới());
    trả về chuỗiRedisTemplate;
    }

    @Bean
    CacheManager cacheManager(RedisTemplate redisTemplate) {
    RedisCacheManager cacheManager = new RedisCacheManager(redisTemplate);
    cacheManager.setDefaultExpiration(600l);
    cacheManager.setUsePrefix(true);
    trả về trình quản lý bộ đệm;
    }
    }

Về spring-boot - cách tách redis ứng dụng khởi động mùa xuân và redis toàn cầu phiên khởi động mùa xuân, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/47965495/

32 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress