Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Spring引导中未从外部化属性文件读取自定义值_Java_Spring_Spring Mvc_Spring Boot - Fatal编程技术网

Java 在Spring引导中未从外部化属性文件读取自定义值

Java 在Spring引导中未从外部化属性文件读取自定义值,java,spring,spring-mvc,spring-boot,Java,Spring,Spring Mvc,Spring Boot,我有一个Spring启动应用程序,其application.properties如下所示:- server.port=5000 spring.datasource.url = jdbc:mysql:....... spring.datasource.username = ....... spring.datasource.password = ...... spring.jpa.hibernate.ddl-auto = create-drop spring.jpa.hibernate.namin

我有一个Spring启动应用程序,其application.properties如下所示:-

server.port=5000
spring.datasource.url = jdbc:mysql:.......
spring.datasource.username = .......
spring.datasource.password = ......
spring.jpa.hibernate.ddl-auto = create-drop
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy


logging.level.org.springframework.web=INFO
logging.level.org.hibernate=ERROR
logging.path=/var/log/


controller.condition.otp = true
.........
.........
我还有一个名为OTP的控制器,该控制器根据配置文件中自定义变量controller.condition.OTP的值启用或禁用,在控制器类中,我给出了以下条件

@ConditionalOnProperty(prefix = "controller", name = "condition.otp", havingValue = "true")
@RestController
public class OTP {
........
........
}
当文件application.properties位于资源文件夹中时,将读取自定义配置变量,并且控制器工作正常。但是,当同一个文件被移动到不同的位置并从那里读取时,自定义配置变量被忽略/不读取,当我点击控制器的路径/otp/generate时,我得到一个404

下面是我如何从不同的位置读取配置文件

@Configuration
@PropertySource("file:/.local/application.properties")
public class PropertyConfig {

    @Bean
    public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
        return new PropertySourcesPlaceholderConfigurer();
    }
}

您需要在spring.config.location环境属性中提供外部化的属性位置

@PropertySource在这种情况下不起作用。问题记录在Jira中

阅读:您必须定义一个环境属性,但我发现@Sachin更快: