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;

/**

  • @author shanyangyang
  • @date 2020/6/2
    */
    //使用PropertySource读取外部文件中的k/v保存到运行的环境变量中
    @PropertySource(value = {“classpath:/person.properties”})
    @Configuration
    public class MainConfigOfPropertyValue {
    @Bean
    public Person person(){
    return new Person();
    }

}

配置文件

在这里插入图片描述

实体类多种赋值方式

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);
		}
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章