繁体   English   中英

Spring 开机值注入

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM