我是一个使用Sping Boot 的初学者,在从src/main/resources中的application.properties文件阅读属性时遇到一些问题
我有一个包含两个软件包的应用程序:com.test.pkg1和com.test.pkg2。
带有**@SpringBootApplication注解得类位于com.test.pkg1中.
此软件包中的所有类都可以使用@Value(“${prop_name}”)注解毫无问题地读取属性文件。
当我使用同样的方法从com.test.pkg2**读取属性时,我只得到了占位符名称。
示例:
来自com.test.pkg1的类的日志
属性值=测试//好!
来自com.test.pkg2的类的日志
属性值= ${prop_name} //为什么?
我很确定我漏掉了一些注解,但我有点迷路了。
谢谢
我使用的是Sping Boot 3.1.6,我使用Spring初始化器进行初始设置。我的IDE是Eclipse 2023-06。
1条答案
按热度按时间7eumitmz1#
问题可能与Sping Boot 应用程序的组件扫描配置有关。默认情况下,
@SpringBootApplication
annotation包括其所在的包及其子包用于组件扫描。因此,com.test.pkg1
中的类会自动拾取,但com.test.pkg2
中的类可能不是。确保Spring正在扫描com.test.pkg2
中的类。您可以显式地将包包含在@SpringBootApplication annotation中,如下所示:字符串