Spring注解(七):使用@Value对Bean进行属性赋值

简介: 在配置文件中可以通过property 标签对Bean进行赋值:

在配置文件中可以通过property 标签对Bean进行赋值:


<context:component-scan base-package="com.xinyi"></context:component-scan>
     <bean id="Person" class="com.xinyi.bean.Person" init-method="" destroy-method="">
         <property name="name" value="新一"></property>
         <property name="age" value="18"></property>
     </bean>
复制代码


在spring的注解开发中可以使用@value注解对Bean的属性进行赋值。@Value注解作用:


该注解的作用是将我们配置文件的属性读出来,与上面的property一样的,该注解有两种方式:@Value(“${}”)@Value(“#{}”) 两种方式。


具体使用的代码如下:


首先新建一个person实体类:


package com.xinyi.bean;
import org.springframework.beans.factory.annotation.Value;
public class Person {
  private String name;
  private Integer age;
 private String sname;
 public String getName() {
    return name;
  }
  public String getSname() {
    return sname;
  }
  public void setSname(String sname) {
    this.sname = sname;
  }
  public void setName(String name) {
    this.name = name;
  }
  public Integer getAge() {
    return age;
  }
  public void setAge(Integer age) {
    this.age = age;
  }
  @Override
  public String toString() {
    return "Person [name=" + name + ", age=" + age + ", sname=" + sname + "]";
  }
  public Person(String name, Integer age, String sname) {
    super();
    this.name = name;
    this.age = age;
    this.sname = sname;
  }
  public Person() {
  }
}
复制代码


然后在配置类中通过使用bean注解将Bean注入到IOC容器中,关于bean的注册可以参考之前的文章:Spring注解(五):容器注册组件的四种方式


import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.xinyi.bean.Person;
@Configuration
public class MyConfig2 {
  @Bean
  public Person person() {
    return new Person();
  }
}
复制代码


使用@Test注解进行代码测试,输出Bean:


@Test
  public void test6() {
    AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MyConfig2.class);
    Person person = (Person) applicationContext.getBean("person");
    System.out.println(person);
  }
复制代码


可以发现由于没对Bean的name、age和sname属性进行赋值,所以得到的输出的结果都为null,输出结果如下所示:


微信截图_20220518083723.png


通常也可以在配置类文件中直接对其进行属性的赋值操作,不过这种调用有参构造函数的方式比较僵硬,所以不推荐。这种方式如下:


@Bean
  public Person person() {
    return new Person("亚索",23,"孤儿玩家");
  }
复制代码


同样也可以读到其属性值,输出结果如下


微信截图_20220518083747.png


这里主要介绍的是通过@Value注解将外部的值动态注入到Bean中,并且@value注解可以配合@PropertySource注解将外部配置文件的值注入Bean的属性,具体的代码如下,在person类中使用@value注解对属性进行赋值: @value基本类型赋值


@Value("亚索")
private String name;
复制代码


@value:SpEL表达式赋值,下面结果为24


@Value("#{23+1}")
private Integer age;
复制代码


@value:获取properties配置文件中的值需要搭配@PropertySource注解(在配置类上)


@Value("${person.sname}")
private String sname;
复制代码


person.properties配置文件内容如下:


微信截图_20220518083805.png


获取person.properties配置文件中的sname的值需要在配置类上加上@PropertySource注解,


@PropertySource(value={"classpath:/person.properties"})
复制代码


输出结果如下:


微信截图_20220518083819.png


以上就是如何在spring开发中给Bean的属性注值的两种方式,这里主要介绍的是使用@value注解对Bean进行属性赋值。

目录
相关文章
|
9天前
|
XML Java 数据格式
SpringBoot入门(8) - 开发中还有哪些常用注解
SpringBoot入门(8) - 开发中还有哪些常用注解
28 0
|
12天前
|
缓存 Java Spring
实战指南:四种调整 Spring Bean 初始化顺序的方案
本文探讨了如何调整 Spring Boot 中 Bean 的初始化顺序,以满足业务需求。文章通过四种方案进行了详细分析: 1. **方案一 (@Order)**:通过 `@Order` 注解设置 Bean 的初始化顺序,但发现 `@PostConstruct` 会影响顺序。 2. **方案二 (SmartInitializingSingleton)**:在所有单例 Bean 初始化后执行额外的初始化工作,但无法精确控制特定 Bean 的顺序。 3. **方案三 (@DependsOn)**:通过 `@DependsOn` 注解指定 Bean 之间的依赖关系,成功实现顺序控制,但耦合性较高。
实战指南:四种调整 Spring Bean 初始化顺序的方案
|
16天前
|
XML JSON Java
SpringBoot必须掌握的常用注解!
SpringBoot必须掌握的常用注解!
41 4
SpringBoot必须掌握的常用注解!
|
18天前
|
存储 缓存 Java
Spring缓存注解【@Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig】使用及注意事项
Spring缓存注解【@Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig】使用及注意事项
58 2
|
18天前
|
JSON Java 数据库
SpringBoot项目使用AOP及自定义注解保存操作日志
SpringBoot项目使用AOP及自定义注解保存操作日志
33 1
|
13天前
|
存储 安全 Java
springboot当中ConfigurationProperties注解作用跟数据库存入有啥区别
`@ConfigurationProperties`注解和数据库存储配置信息各有优劣,适用于不同的应用场景。`@ConfigurationProperties`提供了类型安全和模块化的配置管理方式,适合静态和简单配置。而数据库存储配置信息提供了动态更新和集中管理的能力,适合需要频繁变化和集中管理的配置需求。在实际项目中,可以根据具体需求选择合适的配置管理方式,或者结合使用这两种方式,实现灵活高效的配置管理。
10 0
|
5月前
|
Java 开发者 Spring
解析Spring中Bean的生命周期
解析Spring中Bean的生命周期
55 2
|
1月前
|
Java 开发者 Spring
Spring bean的生命周期详解!
本文详细解析Spring Bean的生命周期及其核心概念,并深入源码分析。Spring Bean是Spring框架的核心,由容器管理其生命周期。从实例化到销毁,共经历十个阶段,包括属性赋值、接口回调、初始化及销毁等。通过剖析`BeanFactory`、`ApplicationContext`等关键接口与类,帮助你深入了解Spring Bean的管理机制。希望本文能助你更好地掌握Spring Bean生命周期。
77 1
|
5月前
|
XML druid Java
Spring5系列学习文章分享---第二篇(IOC的bean管理factory+Bean作用域与生命周期+自动装配+基于注解管理+外部属性管理之druid)
Spring5系列学习文章分享---第二篇(IOC的bean管理factory+Bean作用域与生命周期+自动装配+基于注解管理+外部属性管理之druid)
62 0
|
1月前
|
Java 开发者 Spring
Spring bean的生命周期详解!
本文详细介绍了Spring框架中的核心概念——Spring Bean的生命周期,包括实例化、属性赋值、接口回调、初始化、使用及销毁等10个阶段,并深入剖析了相关源码,如`BeanFactory`、`DefaultListableBeanFactory`和`BeanPostProcessor`等关键类与接口。通过理解这些核心组件,读者可以更好地掌握Spring Bean的管理和控制机制。
84 1