Java Spring引导中的加载配置文件问题

Java Spring引导中的加载配置文件问题,java,spring-boot,properties-file,Java,Spring Boot,Properties File,我正在尝试从Spring启动应用程序的config.properties文件中获取字符串常量的值。但是当我试图从java类中访问这些值时,结果显示为null 请查找以下代码: Config.properties文件: ConfigProp类: 测试等级: SpringBoot应用程序主类: @SpringBootApplication public class UserApplication { public static void main(String[] args) {

我正在尝试从Spring启动应用程序的config.properties文件中获取字符串常量的值。但是当我试图从java类中访问这些值时,结果显示为null

请查找以下代码:

Config.properties文件: ConfigProp类: 测试等级: SpringBoot应用程序主类:

@SpringBootApplication
public class UserApplication {
    public static void main(String[] args) {
       SpringApplication.run(UserApplication.class, args);
    }
}
我没有完全理解这个问题,为什么没有价值观。任何人都可以在这方面帮助我,如果需要任何其他详细信息,请告诉我。

这里的第一个问题:

ConfigProp configProp = new ConfigProp();
您不允许spring维护此依赖关系,因此它不会将其识别为
bean

您的
Test
类可以如下所示:

public class Test {
    @Autowired
    ConfigProp configProp;

    public static void main(String args[]) {
        System.out.println(configProp.getUserName());//coming as null
    }
}
@RunWith(SpringRunner.class)
@SpringBootTest
public class Test {

    @Autowired
    ConfigProp configProp;

    @Test
    public void contextLoads() {
        assertEquals("abc", configProp.getCustUserName());
    }

}
第二个问题是存在两种主要方法。您应该将您的
测试
类编写为Junit测试,它看起来像这样:

public class Test {
    @Autowired
    ConfigProp configProp;

    public static void main(String args[]) {
        System.out.println(configProp.getUserName());//coming as null
    }
}
@RunWith(SpringRunner.class)
@SpringBootTest
public class Test {

    @Autowired
    ConfigProp configProp;

    @Test
    public void contextLoads() {
        assertEquals("abc", configProp.getCustUserName());
    }

}

另外,
Test
类应该位于
src/Test/java
位置。

您确定
config.properties
位于类路径吗?是的,config.properties位于src/main/resources文件夹中。谢谢@Harshit Shrivastava我能知道你的主类有@SpringBootApplication注释吗?在帖子中添加了SpringBootApplication主类。请检查。谢谢@Shanu Gupta看到了它。嘿,你的测试类是junit测试吗?你能发布你的项目结构的截图吗?我只是好奇你怎么会有两个主要的方法?我只是用main()添加了测试类来测试值是否会出现。然后我将删除测试类。谢谢。。。您不应该编写这样的测试。你在使用SpringWeb吗?
@RunWith(SpringRunner.class)
@SpringBootTest
public class Test {

    @Autowired
    ConfigProp configProp;

    @Test
    public void contextLoads() {
        assertEquals("abc", configProp.getCustUserName());
    }

}