@Value 没有从 application.properties 获取值
@Value not getting the value from application.properties
我正在尝试从 Spring 引导应用程序中的 application.properties 获取值。
class 是用@Component 标签定义的,我也已经尝试过@Service,并且用
@PropertySource("classpath:application.properties") 并且没有 @PropertySource 但在任何情况下他们都会得到值。
@Component
@PropertySource("application.properties")
public class TerraformOutput implements IPatternOutput {
@Value(value = "${terraformPath}")
private String pathTerraform;
}
接口是这样定义的
@Component
public interface IPatternOutput extends IOutput {
String createFile(TerraformTemplate t);
}
和高级界面
@Component
public interface IOutput {
void deleteFile(String path);
}
无论如何,我都尝试过不实现接口,但无论如何都没有得到它
application.properties是这样定义的:
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://localhost:3306/dbcloudbatch?createDatabaseIfNotExist=true&autoReconnect=true&useSSL=false
spring.datasource.username=root
spring.datasource.password=admin
spring.datasource.driver-class-name =com.mysql.jdbc.Driver
#spring.jpa.show-sql: true
terraformPath=C:/terraform-files/
提前致谢。
通常 @PropertySource
注释与 @Configuration
配置注释一起使用 class。它适用于整个项目。因此,将它与您的配置放在一起,然后在任何注释为 @Component
、@Service
@Controller
等的 class 中,您可以完全按照您的方式使用 @Value
注释显示在您的代码中。这是一篇关于该问题的好文章:Properties with Spring and Spring Boot
我没有发现您的共享代码有任何问题。但是,您可能会在某处覆盖 terraformPath。 Spring 引导考虑外部化配置文件的特定顺序。 documentation 已经很好地解释了。
我正在尝试从 Spring 引导应用程序中的 application.properties 获取值。
class 是用@Component 标签定义的,我也已经尝试过@Service,并且用 @PropertySource("classpath:application.properties") 并且没有 @PropertySource 但在任何情况下他们都会得到值。
@Component
@PropertySource("application.properties")
public class TerraformOutput implements IPatternOutput {
@Value(value = "${terraformPath}")
private String pathTerraform;
}
接口是这样定义的
@Component
public interface IPatternOutput extends IOutput {
String createFile(TerraformTemplate t);
}
和高级界面
@Component
public interface IOutput {
void deleteFile(String path);
}
无论如何,我都尝试过不实现接口,但无论如何都没有得到它
application.properties是这样定义的:
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://localhost:3306/dbcloudbatch?createDatabaseIfNotExist=true&autoReconnect=true&useSSL=false
spring.datasource.username=root
spring.datasource.password=admin
spring.datasource.driver-class-name =com.mysql.jdbc.Driver
#spring.jpa.show-sql: true
terraformPath=C:/terraform-files/
提前致谢。
通常 @PropertySource
注释与 @Configuration
配置注释一起使用 class。它适用于整个项目。因此,将它与您的配置放在一起,然后在任何注释为 @Component
、@Service
@Controller
等的 class 中,您可以完全按照您的方式使用 @Value
注释显示在您的代码中。这是一篇关于该问题的好文章:Properties with Spring and Spring Boot
我没有发现您的共享代码有任何问题。但是,您可能会在某处覆盖 terraformPath。 Spring 引导考虑外部化配置文件的特定顺序。 documentation 已经很好地解释了。