Java 从yaml文件打印属性时为Null
我正在尝试通过以下操作从Java 从yaml文件打印属性时为Null,java,spring,properties,yaml,Java,Spring,Properties,Yaml,我正在尝试通过以下操作从yml文件访问属性: import org.springframework.beans.factory.annotation.Value; @SpringBootApplication public class Main { @Value("${external.library.url.empik.best.accuracy.book}") private static String bestAccuracyBook; public static void m
yml
文件访问属性:
import org.springframework.beans.factory.annotation.Value;
@SpringBootApplication
public class Main {
@Value("${external.library.url.empik.best.accuracy.book}")
private static String bestAccuracyBook;
public static void main(String[] args) throws IOException {
SpringApplication.run(Main.class, args);
System.out.println(bestAccuracyBook);
}
}
external:
library:
url:
meriln:
romans: www.melin.pl/romans
sensacja: www.melin.pl/sensacja
empik:
guides: https ://www.empik.com/ksiazki/poradniki
romances: https://www.empik.com/ksiazki/romans
biographies: https://www.empik.com/ksiazki/biografie-i-dokument
bestsellers: https://www.empik.com/bestsellery/ksiazki
crime: https://www.empik.com/ksiazki-sensacja-kryminal
fantasy: https://www.empik.com/ksiazki/literatura-fantastyka
concrete.book: https://www.empik.com/%s,%s,ksiazka-p
best.accuracy.book: https://www.empik.com/ksiazki,31,s?sort=scoreDesc&q=%s
尽管添加了SprnigBoot符号,它还是打印空值。不知道为什么
我的application-local.yml文件如下所示:
import org.springframework.beans.factory.annotation.Value;
@SpringBootApplication
public class Main {
@Value("${external.library.url.empik.best.accuracy.book}")
private static String bestAccuracyBook;
public static void main(String[] args) throws IOException {
SpringApplication.run(Main.class, args);
System.out.println(bestAccuracyBook);
}
}
external:
library:
url:
meriln:
romans: www.melin.pl/romans
sensacja: www.melin.pl/sensacja
empik:
guides: https ://www.empik.com/ksiazki/poradniki
romances: https://www.empik.com/ksiazki/romans
biographies: https://www.empik.com/ksiazki/biografie-i-dokument
bestsellers: https://www.empik.com/bestsellery/ksiazki
crime: https://www.empik.com/ksiazki-sensacja-kryminal
fantasy: https://www.empik.com/ksiazki/literatura-fantastyka
concrete.book: https://www.empik.com/%s,%s,ksiazka-p
best.accuracy.book: https://www.empik.com/ksiazki,31,s?sort=scoreDesc&q=%s
我注意到,当我用鼠标在任何属性上移动时,它会说:
无法解析配置属性…..
我的pom.xml
....
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
<relativePath/>
</parent>
...
<dependencies>
...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
。。。。
org.springframework.boot
spring启动程序父级
2.1.1.1发布
...
...
org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
spring引导启动器数据jpa
org.springframework.boot
spring引导配置处理器
符合事实的
org.springframework.boot
弹簧起动试验
测验
您不能将@Value
放在静态字段上。如果您不初始化Spring,该注释将不会起任何作用。@Compass我补充道。仍然没有。您不能将@Value
放在静态字段上。您是对的@ArnaudClaudel@mara122我把它作为回答