You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Spring Boot服务类中使用application.properties定义的Redis配置

在Spring Boot服务类中使用Redis配置值的几种方法

嘿,这问题我熟!在Spring Boot里获取application.properties中定义的spring.redis.host和spring.redis.port配置,有几种简单靠谱的方式,我给你一一拆解:

方法一:用@Value直接注入单个配置

这是最直接的方式,适合只需要获取少量Redis配置项的场景,你可以在服务类里直接用@Value注解把配置值注入到变量中:

@Service
public class RedisService {

    // 注入spring.redis.host配置值
    @Value("${spring.redis.host}")
    private String redisHost;

    // 注入spring.redis.port,还可以添加默认值(配置缺失时用6379)
    @Value("${spring.redis.port:6379}")
    private int redisPort;

    // 示例方法:使用获取到的配置值
    public void showRedisConfig() {
        System.out.println("当前Redis主机:" + redisHost);
        System.out.println("当前Redis端口:" + redisPort);
    }
}

提示:${配置key:默认值}的写法可以避免因配置缺失导致的启动报错,非常实用。

方法二:用@ConfigurationProperties绑定一组配置

如果你的Redis相关配置不止host和port(比如密码、超时时间等),用这种方式更规范,也更便于维护:

第一步:创建配置属性类

@ConfigurationProperties(prefix = "spring.redis")
@Component
public class RedisConfigProps {
    private String host;
    private int port;

    // 必须添加getter和setter,Spring通过它们完成值的注入
    public String getHost() {
        return host;
    }

    public void setHost(String host) {
        this.host = host;
    }

    public int getPort() {
        return port;
    }

    public void setPort(int port) {
        this.port = port;
    }
}

@ConfigurationProperties(prefix = "spring.redis")会自动把所有以spring.redis开头的配置项绑定到这个类的对应字段上。

第二步:在服务类中注入并使用

@Service
public class RedisService {

    private final RedisConfigProps redisConfig;

    // 推荐用构造方法注入(比@Autowired更符合Spring最佳实践)
    public RedisService(RedisConfigProps redisConfig) {
        this.redisConfig = redisConfig;
    }

    public void useRedisConfig() {
        String host = redisConfig.getHost();
        int port = redisConfig.getPort();
        // 在这里用host和port做你需要的业务操作
    }
}

方法三:直接使用Spring自动配置的Redis模板(最常用)

如果你只是想操作Redis(比如存取值),完全没必要手动获取host和port——Spring Boot已经根据你的配置自动创建了RedisTemplate或StringRedisTemplate实例,直接注入就能用:

@Service
public class RedisService {

    private final StringRedisTemplate stringRedisTemplate;

    public RedisService(StringRedisTemplate stringRedisTemplate) {
        this.stringRedisTemplate = stringRedisTemplate;
    }

    public void saveData(String key, String value) {
        // 底层已经自动使用了配置的host和port连接Redis
        stringRedisTemplate.opsForValue().set(key, value);
    }
}

内容的提问来源于stack exchange,提问作者K VIMALRAJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:13:32