1. 程式人生 > >springBoot中屬性檔案中的值獲取

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”),指明屬性檔案的位置