Spring 从自定义类中获取配置文件对象

本文介绍如何在Spring框架中通过自定义类获取配置文件信息,包括定义配置类、使用JavaConfig存储并注解标记配置对象,以及如何在不同环境中获取对应的配置信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring 从自定义类中获取配置文件对象

  • 定义一个配置文件类,包含所需的所需。
  • 定义一个配置文件信息类,用来存储配置文件类对象,注解标记。
  • 获取配置文件对象。

定义一个配置文件类,包含所需的所需

package com.bb.pojo;

public class DbDataSource {
	private String url ;
	private String userName;
	private String password;
	public String getUrl() {
		return url;
	}
	public void setUrl(String url) {
		this.url = url;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	@Override
	public String toString() {
		return "DbDataSource [url=" + url + ", userName=" + userName + ", password=" + password + "]";
	}
}

定义一个配置文件信息类,用来存储配置文件类对象,注解标记

JavaConfig 中存储了两个 DbDataSource 对象,并用注解进行了标记

package com.bb;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

import com.bb.pojo.DbDataSource;

@Configuration 
public class JavaConfig {
	@Bean
	@Profile("test")
	public DbDataSource getTestds(){
		DbDataSource ds = new DbDataSource();
		ds.setUrl("http://192.168.1.180/test/...");
		ds.setUserName("admin");
		ds.setPassword("123456");
		return ds;
	}
	
	@Bean
	@Profile("dev")
	public DbDataSource getDevds(){
		DbDataSource ds = new DbDataSource();
		ds.setUrl("http://192.168.1.188/dev/...");
		ds.setUserName("root");
		ds.setPassword("root");
		return ds;
	}
}

获取配置文件对象

	public static void main(String[] args) {
		AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext();
		ac.getEnvironment().setActiveProfiles("dev");
		ac.register(JavaConfig.class);
		ac.refresh();
		DbDataSource source = ac.getBean(DbDataSource.class);
		System.out.println(source);
	}

输出打印

DbDataSource [url=http://192.168.1.188/dev/..., userName=root, password=root]

总结:纯java文件形式打印配置文件,存储配置文件(也可以使用xml方式存储,见姊妹篇),获取配置文件信息。

项目打包 提取码:ycno 环境:eclipse

Spring Boot 提供了非常便捷的方式来自定义 `application.yml` 配置文件,并将其属性绑定到 Java 对象中,这不仅提高了代码的灵活性还增强了项目的可维护性。 ### 一、自定义配置项 假设你需要添加一个新的数据库连接池的相关设置,可以在原有的 `application.yml` 中直接追加相应的键值对: ```yaml spring: datasource: hikari: minimum-idle: 5 maximum-pool-size: 20 ``` 这里我们只是简单地调整 HikariCP 连接池的一些默认参数。当然也可以创建完全独立于 Spring 的新组配置信息,例如为应用指定一些业务规则或外部服务API密钥等个性化内容: ```yaml myapp: api-key: "your_secret_api_key" features: enabled-feature-a: true beta-mode: false ``` ### 二、读取配置至POJO 为了将上述自定义配置映射成易于操作的对象实例,在项目里新建一个 Java 类并利用注解 @ConfigurationProperties 或者更推荐使用新版中的 @Value 注入单个值;如果是一个完整的配置块则适合前者。 #### 使用@ConfigurationProperties方式 首先需要开启@EnableConfigurationProperties支持(通常已经在主应用程序类上存在),然后定义一个对应的实体bean: ```java import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Component //让这个组件能被自动装配进IOC容器 @ConfigurationProperties(prefix = "myapp")//前缀对应yml里的节点名称 public class MyAppConfig { private String apiKey; private Features features; public static class Features { boolean enabledFeatureA; boolean betaMode; getters/setters... } getters/setters... } ``` 接着就可以通过依赖注入轻松获取这些配置数据啦! 另外需要注意的是当修改完配置之后记得重启程序使之生效哦~不过对于部分场景下动态刷新的需求,可以结合Actuator端点完成即时更新功能~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值