Spring中Bean的属性赋值@Value()---使用类配置的方式
2020-12-18 11:05
标签:pre super default factor test gen package oid repo 来源:https://blog.csdn.net/jinhaijing/article/details/83902191 使用@Value赋值的几种类型; SPEL详细:https://www.jianshu.com/p/e0b50053b5d3 内容: 使用@PropertySource读取外部配置文件中的k/v保存到运行的环境变量中;加载完外部的配置文件以后使用${}取出配置文件的值;并注入Person对象 属性上面@Value()表示赋值 @Value("#{20-2}"):使用了正则表达式的值 @Value("${person.nickName}"):表示引用到了person.properties中定义的person.nickName的值,在配置了中加载了properties文件 这种方式也等同于spring的xml中: 打印Person对象的值 结果: Spring中Bean的属性赋值@Value()---使用类配置的方式 标签:pre super default factor test gen package oid repo 原文地址:https://www.cnblogs.com/lvhouhou/p/12878502.html
//1、基本数值
//2、可以写SpEL; #{}。 SpEL(Spring Expression Language),即Spring表达式语言,是比JSP的EL更强大的一种表达式语言。
//3、可以写${};取出配置文件【properties】中的值(在运行环境变量里面的值)一、新建person.properties文件
person.nickName=小张三
二、新建配置类 MainConfigOfPropertyValues.java
package com.atguigu.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import com.atguigu.bean.Person;
//使用@PropertySource读取外部配置文件中的k/v保存到运行的环境变量中;加载完外部的配置文件以后使用${}取出配置文件的值
@PropertySource(value={"classpath:/person.properties"})
@Configuration
public class MainConfigOfPropertyValues {
@Bean
public Person person(){
return new Person();
}
}
三、新建Person类
package com.atguigu.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 + "]";
}
}context:property-placeholder location="classpath:person.properties"/>
context:component-scan base-package="com.atguigu" use-default-filters="false">context:component-scan>
bean id="person" class="com.atguigu.bean.Person" >
property name="age" value="#{20-2}">property>
property name="name" value="小张三">property>
property name="nickName" value="${person.nickName}">property>
bean>
四、新建测试类
package com.atguigu.test;
import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.core.env.ConfigurableEnvironment;
import com.atguigu.bean.Person;
import com.atguigu.config.MainConfigOfLifeCycle;
import com.atguigu.config.MainConfigOfPropertyValues;
public class IOCTest_PropertyValue {
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfigOfPropertyValues.class);
@Test
public void test01(){
printBeans(applicationContext);
System.out.println("=============");
Person person = (Person) applicationContext.getBean("person");
System.out.println(person);
applicationContext.close();
}
//打印spring启动后加载的对象
private void printBeans(AnnotationConfigApplicationContext applicationContext){
String[] definitionNames = applicationContext.getBeanDefinitionNames();
for (String name : definitionNames) {
System.out.println(name);
}
}
}
上一篇:Spring的事务抽象
下一篇:多线程间的互斥
文章标题:Spring中Bean的属性赋值@Value()---使用类配置的方式
文章链接:http://soscw.com/index.php/essay/37069.html