springBoot属性文件中的值获取

1、使用springBoot中自带的属性文件application.properties

datasource.driverName=com.mysql.jdbc.Driver
datasource.url=jdbc:mysql://localhost:3306/test
datasource.password=root
datasource.username=root

创建一个数据源的类

package com.spring.boot.chapter3.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

@Component
public class DataBaseProperties {
		@Value("${datasource.driverName}")
		private String driverName = null;
		@Value("${datasource.url}")
		private String url = null;
		private String username = null;
		private String password = null ;
		public String getDriverName() {
			return driverName;
		}
		public void setDriverName(String driverName) {
			System.out.println(driverName);
			this.driverName = driverName;
		}
		public String getUrl() {
			return url;
		}
		public void setUrl(String url) {
			System.out.println(url);
			this.url = url;
		}
		public String getUsername() {
			return username;
		}
		@Value("${datasource.username}")
		public void setUsername(String username) {
			this.username = username;
		}
		public String getPassword() {
			return password;
		}
		@Value("${datasource.password}")
		public void setPassword(String password) {
			this.password = password;
		}
		@Override
		public String toString() {
			return "DataBaseProperties [driverName=" + driverName + ", url=" + url + ", username=" + username
					+ ", password=" + password + "]";
		}

}

在控制器中获取该数据源的值

public class indexController {
	 @Autowired
	 private com.spring.boot.chapter3.config.DataBaseProperties dataBaseProperties;
	@RequestMapping(value="/index")
	public String indexCon() {
		System.out.println(dataBaseProperties.getDriverName());
		return "index";
	}
}

2、自定义属性文件,jdbc.properties,获取属性文件中值的方式不一样,同时在数据源类上需要加注解

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

@Component
**@ConfigurationProperties("datasource")
@PropertySource(value="classpath:jdbc.properties")**
public class DataBaseProperties {
		private String driverName;
	   private String url = null;
    	private String username = null;
       private String password = null ;
    	public String getDriverName() {
			return driverName;
	}
	public void setDriverName(String driverName) {
			System.out.println(driverName);
			this.driverName = driverName;
		}
	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 "DataBaseProperties [driverName=" + driverName + ", url=" + url + ", username=" + username
				+ ", password=" + password + "]";
	}	
	}

@ConfigurationProperties(“datasource”) ,由该值和类中属性名称合并获取对应属性文件的值
@PropertySource(value=“classpath:jdbc.properties”),指明属性文件的位置

在 Spring Boot 中,可以通过在 `application.yaml` 或 `application.properties` 文件中定义属性获取属性。以下是几种获取属性的方法: 1. 使用 `@Value` 注解:可以通过 `@Value("${property.key}")` 注解来注入属性,其中 `property.key` 是在配置文件中定义的属性键。 ```java import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component public class MyComponent { @Value("${my.property}") private String myProperty; // getter and setter } ``` 2. 使用 `@ConfigurationProperties` 注解:可以通过 `@ConfigurationProperties(prefix = "prefix")` 注解将属性绑定到一个类上,其中 `prefix` 是在配置文件中定义的属性前缀。 ```java import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Component @ConfigurationProperties(prefix = "my") public class MyProperties { private String property; // getter and setter } ``` 3. 使用 `Environment` 对象:可以通过注入 `Environment` 对象来获取属性。 ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; @Component public class MyComponent { @Autowired private Environment env; public void someMethod() { String property = env.getProperty("my.property"); // 使用属性... } } ``` 这些方法都可以用来获取在配置文件中定义的属性。注意,如果使用 `@Value` 或 `@ConfigurationProperties` 注解,需要确保在配置文件中正确配置了对应的属性键和属性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值