Java中Person类型赋值_Spring中Bean的属性赋值@Value()---使用类配置的方式

//使用@Value赋值的几种类型;

//1、基本数值

//2、可以写SpEL; #{}

//3、可以写${};取出配置文件【properties】中的值(在运行环境变量里面的值)

一、新建person.properties文件

内容:

person.nickName=小张三

二、新建配置类 MainConfigOfPropertyValues.java

使用@PropertySource读取外部配置文件中的k/v保存到运行的环境变量中;加载完外部的配置文件以后使用${}取出配置文件的值;并注入Person对象

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类

属性上面@Value()表示赋值

@Value("#{20-2}"):使用了正则表达式的值

@Value("${person.nickName}"):表示引用到了person.properties中定义的person.nickName的值,在配置了中加载了properties文件

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 + "]";

}

这种方式也等同于spring的xml中:

四、新建测试类

打印Person对象的值

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);

}

}

}

结果:

68ba86cf0ac61aaade1b93dd44bdf872.png

说明:获取到了Person对象的值

另:在测试类中test01方法中执行如下片段代码,也可以获取对象的属性值;

即获取当前的上下文的环境变量environment

ConfigurableEnvironment environment = applicationContext.getEnvironment();

String property = environment.getProperty("person.nickName");

System.out.println(property);

applicationContext.close();

======以下于你或许是个好消息======

好消息就是:欢迎访问下面的博客网站哈哈哈......

网站名称:Java学习笔记网 (点击进入)

url:https://www.javaxxbj.com/ (点击进入)

网站特点:

java主要网站的导航目录

你可以记录自己的博客,并可以控制显示和隐藏,可利于管理啦!!!

可以添加收藏各个网站的链接!!!

甚至也可以文章收藏,点赞,关注,查看我的消息等功能哦!!1

看一小点点的截图:

8b2227abad88f4e02abe361327b9f25c.png

85ccc93741434233a1e1fff563c8a9d4.png

或可一试哦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值