您的位置:首页 > 编程语言 > Java开发

spring属性赋值@Value赋值与@PropertySource加载外部配置文件

2019-03-07 14:43 399 查看

1.实体类

package com.hjj.bean;

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

public class Person {

//使用@Value赋值;
//1、基本数值
//2、可以写SpEL; #{}
//3、可以写${};取出配置文件【properties】中的值(在运行环境变量里面的值)

@Value("张三")
private String name;
@Value("#{20-2}")
private Integer age;

@Value("${person.nickName}")
private String nickName;

public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
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 Person(String name, Integer age) {
super();
this.name = name;
this.age = age;
}
public Person() {
super();
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + ", nickName=" + nickName + "]";
}
}

2.创建一个配置类

package com.hjj.config;

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

import com.hjj.bean.Person;

//使用@PropertySource读取外部配置文件中的k/v保存到运行的环境变量中;加载完外部的配置文件以后使用${}取出配置文件的值
@PropertySource(value={"classpath:/person.properties"})
//告诉sring容器这是一个配置类
@Configuration
public class MainConfigOfPropertyValues {

//给容器中添加一个person
@Bean
public Person person(){
return new Person();
}

}

3.创建一个测试类

package com.hjj.test;

import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.core.env.ConfigurableEnvironment;

import com.hjj.bean.Person;
import com.hjj.config.MainConfigOfLifeCycle;
import com.hjj.config.MainConfigOfPropertyValues;

public class IOCTest_PropertyValue {
// 加载步骤2中的MainConfigOfPropertyValues配置类
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfigOfPropertyValues.class);
@Test
public void test01(){
// 打印容器中所有bean
printBeans(applicationContext);
System.out.println("=============");

Person person = (Person) applicationContext.getBean("person");
System.out.println(person);

// 配置文件中的值被获取之后,可以使用该方法获取配置文件中的值(配置文件中的值都会被加载进环境变量中)
ConfigurableEnvironment environment = applicationContext.getEnvironment();
String property = environment.getProperty("person.nickName");
System.out.println(property);
applicationContext.close();
}

private void printBeans(AnnotationConfigApplicationContext applicationContext){
String[] definitionNames = applicationContext.getBeanDefinitionNames();
for (String name : definitionNames) {
System.out.println(name);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: