java - Spring Boot中加载配置文件问题

标签 java spring-boot properties-file

我正在尝试从 Spring boot 应用程序中的 config.properties 文件获取字符串常量的值。但是当我尝试从 java 类访问这些值并作为 null 时。

请找到以下代码:

Config.properties 文件:

## user Details##
user.username=xyz
user.password=123456


##customer Details  ##
customer.username=abc
customer.password=123456

ConfigProp 类:

@Component
@PropertySource("classpath:config.properties")
public class ConfigProp {
    @Value("${user.username}")
    private String userName;

    @Value("${user.password}")
    private String password;

    @Value("${customer.username}")
    private String custUserName;

    @Value("${customer.password}")
    private String custPassowrd;
}

测试类:

public class Test {
    public static void main(String args[]) {
        ConfigProp configProp = new ConfigProp();
        System.out.println(configProp.getUserName());//coming as null
    }
}

SpringBoot App主类:

@SpringBootApplication
public class UserApplication {
    public static void main(String[] args) {
       SpringApplication.run(UserApplication.class, args);
    }
}

我没有完全理解这个问题,为什么值没有出现。谁能帮我解决这个问题,如果需要任何其他详细信息,请告诉我。

最佳答案

这里的第一个问题:

ConfigProp configProp = new ConfigProp();

您不允许 spring 维护这种依赖关系,因此它不会将其识别为 bean

您的测试类可以如下所示:

public class Test {
    @Autowired
    ConfigProp configProp;

    public static void main(String args[]) {
        System.out.println(configProp.getUserName());//coming as null
    }
}

这里的第二个问题是存在两个主要方法。您应该将 Test 类编写为 Junit 测试,如下所示:

@RunWith(SpringRunner.class)
@SpringBootTest
public class Test {

    @Autowired
    ConfigProp configProp;

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

}

此外,Test 类应位于 src/test/java 位置。

关于java - Spring Boot中加载配置文件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50097520/

相关文章:

java - 在Spring Boot中的requestmapping和restcontroller中发送开始和结束日期

java - 在非 Web 应用程序中使用 @Autowired 时无法注入(inject)存储库

java - Java项目中config.properties文件的位置

clojure - *new* contrib 中有 Java 属性文件的库吗?

java - 线程 "main"java.net.NoRouteToHostException : No route to host 中的异常

java - 在 .jar 中加载 BufferedImage

java - Spring Boot 2 JasperReportsMultiFormatView

java - 如何验证微服务的请求源

java - 如何实现模块化 Ant 构建?

java - 如何检测和删除 URL 中的一句话?