简介
@PropertySource
是 Spring 框架中的一个注解,用于指定一个或多个属性文件(通常是.properties
文件)这些文件包含了应用程序需要的配置信息。当你在 Spring 的配置类中使用此注解时,Spring 容器会加载这些属性文件,并将其中的属性添加到 Spring 的环境中。这使得你可以在应用程序中方便地访问这些属性。
说实话一般都是在加载额外的属性文件或者使用非标准名称的文件时候使用
三种用法特性:
假设你有一个名为app.properties
的属性文件,包含以下内容:
app.name=MyApp
app.version=1.0
(1)与Environment
抽象集成:加载的属性可以通过 Spring 的Environment
API 访问,这允许你在代码中以编程方式访问属性。
你可以使用@PropertySource
注解来加载这个文件:
@Configuration
@PropertySource("classpath:app.properties")
public class AppConfig {@Autowiredprivate Environment env;public void someMethod() {// 使用 Environment 来访问属性String appName = env.getProperty("app.name");String appVersion = env.getProperty("app.version");}
}
(2)与@Value
注解集成:可以结合使用@Value
注解,直接将属性文件中的值注入到 Spring 管理的 bean 中。
@Configuration
@PropertySource("classpath:app.properties")
public class AppConfig {@Value("${app.name}")private String appName;@Value("${app.version}")private String appVersion;// ...
}
(3)与@ConfigurationProperties 配合指定外部属性文件。进行属性赋值,我下图忘记把注释打卡了凑活看吧。
注意事项:
-
属性文件的位置:
@PropertySource
注解中的路径可以是类路径(classpath:
),也可以是文件系统路径(file:
)。 -
属性文件的格式:默认情况下,
@PropertySource
只支持.properties
文件。如果需要使用其他格式(如.yml
或.yaml
),需要额外的配置或使用 Spring Boot。
------------------------------------------与正文内容无关------------------------------------
如果觉的文章写对各位读者老爷们有帮助的话,麻烦点赞加关注呗!小弟在这拜谢了!
如果您觉得我的文章在某些地方写的不尽人意或者写的不对,从而让你对你人生观产生颠覆(概不负责),需要斧正,麻烦在评论区不吝赐教,作者看到后会根据您的提示查阅文章进行修改,还这世间一个公理一片蓝天