@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,无需硬编码任何数据库连接细节。

相关推荐
枕布响丸辣1 分钟前
【无标题】
数据库·oracle
Cory.眼5 分钟前
MySQL语法错误与修正指南
数据库·sql·oracle
LSL666_12 分钟前
Redis值数据类型——sorted set
数据库·redis·缓存·数据类型
supericeice17 分钟前
GraphRAG 和 RAG 的区别:企业知识问答什么时候该升级到 GraphRAG
数据库·知识图谱·rag·graphrag
菜菜小狗的学习笔记18 分钟前
黑马程序员Redis--基础篇
数据库·redis·缓存
是桃萌萌鸭~19 分钟前
Oracle参数db_unique_name详解
数据库·sql·oracle·database
Binary-Jeff21 分钟前
MySQL MVCC 原理解析:Undo Log、ReadView 与版本可见性机制
java·数据库·后端·mysql·spring
bug远离Jemma21 分钟前
MySql基本使用命令记录
数据库·mysql·oracle
Leon-Ning Liu21 分钟前
SQL Server在ldf文件误删的情况下恢复数据库
数据库·sqlserver
专注_每天进步一点点26 分钟前
mysql-connector-j(8.0 及以上版本,包括你使用的 8.3.0)并非采用 GPL 许可证,因此你在项目中引入该依赖时,不需要遵循 GPL 的开源要求(比如开源你的整个项目)
数据库·mysql·apache