Spring系列(九):Spring属性赋值注解@Value 用法介绍

简介: @Value注解的作用主要可以给属性直接赋值、也可以读取配置文件中的值给属性赋值

今天给大家分享Spring属性赋值注解@Value 用法,希望对大家能有所帮助!

image_27bb8fcb.png

1、@Value注解的作用

@Value注解的作用主要可以给属性直接赋值、也可以读取配置文件中的值给属性赋值

2、@Value 注解的写法

  • 基本数据类型赋值:@Value("三国演义")
  • 使用${} ,可以读取保配置文件的值(前提是配置文件保存的环境变量当中)
  • 也可以使用spring表达式 \#{} 做些简单的运算然后赋值,比如 @Value(100-1)

3、用法示例

3.1 resources 目录新增 book.properties 配置文件

book.bookName=水浒传
book.price=80.00
book.bookType=四大名著

3.2 新增实体 Book.java

package com.spring.bean;


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


public class Book  {
    // 基本数据类型赋值
    @Value("三国演义")
    private String bookName;
    // 使用${} ,可以读取保配置文件的值(前提是配置文件保存的环境变量当中)
    @Value("${book.bookType}")
    private String bookType;
    // 也可以使用spring表达式 #{} 做些简单的运算然后赋值,比如 100-50 得到的值为50
    @Value("#{100-10.15}")
    private double price;


    public Book() {
    }


    public Book(String bookName, String bookType, double price) {
        this.bookName = bookName;
        this.bookType = bookType;
        this.price = price;
    }


    public String getBookName() {
        return bookName;
    }


    public void setBookName(String bookName) {
        this.bookName = bookName;
    }


    public String getBookType() {
        return bookType;
    }


    public void setBookType(String bookType) {
        this.bookType = bookType;
    }


    public double getPrice() {
        return price;
    }


    public void setPrice(double price) {
        this.price = price;
    }
    @Override
    public String toString() {
        return "Book{" +
                "bookName='" + bookName + '\'' +
                ", bookType='" + bookType + '\'' +
                ", price=" + price +
                '}';
    }


}

3.3 新增 TestValueConfig.java

package com.spring.config;


import com.spring.bean.Book;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
//使用 @PropertySource 注解可以加载外部的配置文件,将外部配置文件中的key/value值保存到运行的环境变量当中去
@PropertySource(value = {"classpath:/book.properties"})
@Configuration
public class TestValueConfig {
    @Bean
    public Book book() {
        return new Book();
    }
}

3.4 新增 TestValue.java 测试文件

package com.spring.test;


import com.spring.config.TestValueConfig;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.core.env.ConfigurableEnvironment;


public class TestValue {
    public static void main(String[] args) {
        AnnotationConfigApplicationContext annotationContext = new AnnotationConfigApplicationContext(TestValueConfig.class);
        Object book = annotationContext.getBean("book");
        System.out.println(book);
        //通过环境变量直接读取配置文件里面的值
        ConfigurableEnvironment environment = annotationContext.getEnvironment();
        System.out.println(environment.getProperty("book.bookName"));


    }
}

输出结果:

Book{bookName='三国演义', bookType='四大名著', price=89.85}

水浒传

4、使用场景

  • 直接对属性进行赋值;比如字符串、数值、文件内容等。
  • 配置文件中读取简单类型进行赋值;配置文件需要保存到环境变量当中才有效。
  • 配置文件中读取复杂数据类型进行赋值;比如数组、Map、对象列表。
相关文章
|
11天前
|
XML Java 数据格式
SpringBoot入门(8) - 开发中还有哪些常用注解
SpringBoot入门(8) - 开发中还有哪些常用注解
30 0
|
30天前
|
Java Spring
在使用Spring的`@Value`注解注入属性值时,有一些特殊字符需要注意
【10月更文挑战第9天】在使用Spring的`@Value`注解注入属性值时,需注意一些特殊字符的正确处理方法,包括空格、引号、反斜杠、新行、制表符、逗号、大括号、$、百分号及其他特殊字符。通过适当包裹或转义,确保这些字符能被正确解析和注入。
|
19天前
|
XML JSON Java
SpringBoot必须掌握的常用注解!
SpringBoot必须掌握的常用注解!
42 4
SpringBoot必须掌握的常用注解!
|
20天前
|
存储 缓存 Java
Spring缓存注解【@Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig】使用及注意事项
Spring缓存注解【@Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig】使用及注意事项
66 2
|
20天前
|
JSON Java 数据库
SpringBoot项目使用AOP及自定义注解保存操作日志
SpringBoot项目使用AOP及自定义注解保存操作日志
34 1
|
15天前
|
存储 安全 Java
springboot当中ConfigurationProperties注解作用跟数据库存入有啥区别
`@ConfigurationProperties`注解和数据库存储配置信息各有优劣,适用于不同的应用场景。`@ConfigurationProperties`提供了类型安全和模块化的配置管理方式,适合静态和简单配置。而数据库存储配置信息提供了动态更新和集中管理的能力,适合需要频繁变化和集中管理的配置需求。在实际项目中,可以根据具体需求选择合适的配置管理方式,或者结合使用这两种方式,实现灵活高效的配置管理。
12 0
|
27天前
|
存储 Java 数据管理
强大!用 @Audited 注解增强 Spring Boot 应用,打造健壮的数据审计功能
本文深入介绍了如何在Spring Boot应用中使用`@Audited`注解和`spring-data-envers`实现数据审计功能,涵盖从添加依赖、配置实体类到查询审计数据的具体步骤,助力开发人员构建更加透明、合规的应用系统。
|
2月前
|
SQL 监控 druid
springboot-druid数据源的配置方式及配置后台监控-自定义和导入stater(推荐-简单方便使用)两种方式配置druid数据源
这篇文章介绍了如何在Spring Boot项目中配置和监控Druid数据源,包括自定义配置和使用Spring Boot Starter两种方法。
|
1月前
|
人工智能 自然语言处理 前端开发
SpringBoot + 通义千问 + 自定义React组件:支持EventStream数据解析的技术实践
【10月更文挑战第7天】在现代Web开发中,集成多种技术栈以实现复杂的功能需求已成为常态。本文将详细介绍如何使用SpringBoot作为后端框架,结合阿里巴巴的通义千问(一个强大的自然语言处理服务),并通过自定义React组件来支持服务器发送事件(SSE, Server-Sent Events)的EventStream数据解析。这一组合不仅能够实现高效的实时通信,还能利用AI技术提升用户体验。
166 2
|
13天前
|
缓存 IDE Java
SpringBoot入门(7)- 配置热部署devtools工具
SpringBoot入门(7)- 配置热部署devtools工具
26 2
 SpringBoot入门(7)- 配置热部署devtools工具
下一篇
无影云桌面