@PropertySource的使用

假设我们有一个名为 database.properties 的属性文件,内容如下,该文件位于项目的类路径 (resources 目录) 下:

java 复制代码
# database.properties
db.url=jdbc:mysql://localhost:3306/mydb
db.username=root
db.password=password

然后,创建一个 Spring 配置类,使用 @PropertySource 加载上述属性文件,并在配置类中使用这些属性:

java 复制代码
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

import javax.sql.DataSource;

@Configuration
@PropertySource("classpath:database.properties") // 加载属性文件
public class AppConfig {

    @Autowired
    private Environment env; // 注入环境变量,以便访问属性

    @Bean
    public DataSource dataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();

        // 从环境变量中读取属性并设置到数据源中
        dataSource.setUrl(env.getProperty("db.url"));
        dataSource.setUsername(env.getProperty("db.username"));
        dataSource.setPassword(env.getProperty("db.password"));

        return dataSource;
    }
}

我们可以通过 @PropertySource 注解指定了 database.properties 文件的位置。然后,使用 @Autowired 注入 Environment 对象,通过调用 env.getProperty() 方法读取属性值,并将这些值应用于数据源 (DataSource) 的配置中。这样,当 Spring 应用启动时,它会自动读取这些外部配置,并正确地配置数据源 Bean,无需硬编码任何数据库连接细节。

相关推荐
jiayou646 小时前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
李广坤1 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
爱可生开源社区2 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1772 天前
《从零搭建NestJS项目》
数据库·typescript
加号33 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏3 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
李慕婉学姐3 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
百锦再3 天前
Django实现接口token检测的实现方案
数据库·python·django·sqlite·flask·fastapi·pip
tryCbest3 天前
数据库SQL学习
数据库·sql
jnrjian3 天前
ORA-01017 查找机器名 用户名 以及library cache lock 参数含义
数据库·oracle