[英]Spring boot value injection
我创建了一个简单的 spring 启动应用程序,我想将字符串值设置为组件中的字段(用 @Component 注释的类),但我得到一个异常
java.lang.IllegalArgumentException: Could not resolve placeholder 'rounding.strategy' in value "${rounding.strategy}"
我绝对确定application.properties
文件包含此值。 我还确定我的application.properties
文件位于正确的目录( src/main/resources/application.properties
)中。
这就是我尝试设置此值的方式:
@Value("${rounding.strategy}")
private String actualStrategyBeanName;
这就是我在application.properties
文件中设置它的方式:
rounding.strategy = sprbj_FiftyRoundingStrategy
build.gradle
plugins {
id 'org.springframework.boot' version '2.4.5'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
test {
useJUnitPlatform()
}
Intellij IDEA Ultimate 显示注入值正确(请参见屏幕截图在此处输入图像描述在此处输入图像描述),但 spring 无法将其设置为字段。 我做错了什么?
编辑我尝试使用@PropertySource("classpath:application.properties")
注释注释主 class ,然后我得到了
java.io.FileNotFoundException: class path resource [application.properties] cannot be opened because it does not exist
尝试将资源文件夹移出一层:
像这样:
src/main/resources/application.properties
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.