天天看點

Spring使用——讀取properties配置檔案一、Spring注解——PropertySource二、SpringXML-讀取properties配置檔案

一、Spring注解——PropertySource

配置類

package com.ysy.config;

import com.ysy.Person;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.context.annotation.PropertySource;

//使用PropertySource讀取外部檔案中的k/v儲存到運作的環境變量中

@PropertySource(value = {“classpath:/person.properties”})

@Configuration

public class MainConfigOfPropertyValue {

@Bean

public Person person(){

return new Person();

}

}

配置檔案

Spring使用——讀取properties配置檔案一、Spring注解——PropertySource二、SpringXML-讀取properties配置檔案

實體類多種指派方式

package com.ysy;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;

/**
 * @author shanyangyang
 * @date 2020/5/22
 */
public class Person {
	//使用@value指派
	//1、基本數值
	//2、可以寫SPEL表達式 #{}
	//3、可以寫${},取出配置檔案中的值(運作的環境變量中的值)
	@Value("ysy")
	private String name;
	@Value("#{10+18}")
	private Integer age;
	@Value("${person.nickName}")
	private String nickName;

	public Person() {
	}

	public Person(String name, Integer age) {
		this.name = name;
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}

	public String getNickName() {
		return nickName;
	}

	public void setNickName(String nickName) {
		this.nickName = nickName;
	}

	@Override public String toString() {
		return "Person{" + "name='" + name + '\'' + ", age=" + age + ", nickName='" + nickName + '\'' + '}';
	}
}
           

測試類

package com.ysy.test;

import com.ysy.config.MainConfigOfProfile;
import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * @author shanyangyang
 * @date 2020/6/8

 */
public class IOCTestOfProfile {
	//AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(MainConfigOfProfile.class);

	//1、使用指令行動态參數,在虛拟機參數位置加載:-Dspring.profiles.active=test
	//2、建立一個AnnotationConfigApplicationContext對象,無參構造器;設定需要激活的環境;注冊配置類,啟動重新整理容器
	@Test
	public void test01(){
		AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
		context.getEnvironment().setActiveProfiles("testA");
		context.register(MainConfigOfProfile.class);
		context.refresh();
		print(context);
	}

	private void print(AnnotationConfigApplicationContext context) {
		String[] beanDefinitionNames = context.getBeanDefinitionNames();
		for (String name:beanDefinitionNames){
			System.out.println(name);
		}
	}
}
           

二、SpringXML-讀取properties配置檔案