痞子374 2024-07-18 09:17 采纳率: 90.2%
浏览 9
已结题

application.properties中自定义配置拿不到值

我在application.properties配置文件中自定义了一个配置,并为其赋值,在代码中进行引用后打印显示为null,并没有拿到配置中的数据,这是怎么回事

  • 写回答

4条回答 默认 最新

  • GISer Liu 2024-07-18 09:19
    关注

    该回答引用自GPT-3.5, 由博主 GISer Liu 编写:

    问题分析

    用户在application.properties文件中自定义了一个配置,但在代码中引用该配置时,打印结果为null,即没有成功获取到配置的值。这个问题可能由以下几个原因导致:

    1. 配置文件路径或名称错误:确保application.properties文件位于正确的路径,并且文件名正确。
    2. 配置项名称错误:确保在application.properties文件中配置项的名称与代码中引用的名称完全一致。
    3. 配置类或Bean未正确加载:确保自定义的配置类或Bean已正确加载到Spring上下文中。
    4. 配置文件未被正确加载:确保Spring Boot应用启动时正确加载了application.properties文件。

    解决方案

    1. 确认配置文件路径和名称

    确保application.properties文件位于src/main/resources目录下,并且文件名正确。

    2. 确认配置项名称

    确保在application.properties文件中配置项的名称与代码中引用的名称完全一致。例如,如果配置项为:

    custom.config.value=someValue
    

    那么在代码中引用时应为:

    @Value("${custom.config.value}")
    private String customConfigValue;
    

    3. 确认配置类或Bean已正确加载

    如果使用自定义配置类,确保该类已正确加载到Spring上下文中。例如:

    @Configuration
    @ConfigurationProperties(prefix = "custom.config")
    public class CustomConfig {
        private String value;
    
        // Getter and Setter
        public String getValue() {
            return value;
        }
    
        public void setValue(String value) {
            this.value = value;
        }
    }
    

    并在主类或配置类中添加:

    @EnableConfigurationProperties(CustomConfig.class)
    

    4. 确认配置文件被正确加载

    确保Spring Boot应用启动时正确加载了application.properties文件。可以通过添加日志或调试信息来确认。

    示例代码

    假设我们在application.properties文件中定义了一个配置项:

    custom.config.value=someValue
    

    在代码中引用该配置项:

    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Component;
    
    @Component
    public class CustomConfigComponent {
    
        @Value("${custom.config.value}")
        private String customConfigValue;
    
        public void printConfigValue() {
            System.out.println("Custom Config Value: " + customConfigValue);
        }
    }
    

    在主类中调用该方法:

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.ApplicationContext;
    
    @SpringBootApplication
    public class Application {
    
        public static void main(String[] args) {
            ApplicationContext context = SpringApplication.run(Application.class, args);
            CustomConfigComponent component = context.getBean(CustomConfigComponent.class);
            component.printConfigValue();
        }
    }
    

    总结

    通过以上步骤,可以确保在application.properties文件中自定义的配置项能够被正确加载并在代码中引用。如果问题依然存在,建议检查日志输出,查看是否有相关的错误信息,以便进一步定位问题。

    如果该回答解决了您的问题,请采纳!如果没有,请私信联系或评论您的疑惑

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 7月27日
  • 已采纳回答 7月19日
  • 创建了问题 7月18日

悬赏问题

  • ¥20 WPF MVVM模式 handycontrol 框架, hc:SearchBar 控件 Text="{Binding NavMenusKeyWords}" 绑定取不到值
  • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂
  • ¥15 数字信号处理考试111
  • ¥100 关于#audobe audition#的问题,如何解决?
  • ¥15 allegro17.2生成bom表是空白的
  • ¥15 请问一下怎么打通CAN通讯
  • ¥20 如何在 rocky9.4 部署 CDH6.3.2?
  • ¥35 navicat将excel中的数据导入mysql出错
  • ¥15 rt-thread线程切换的问题
  • ¥15 高通uboot 打印ubi init err 22