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

您所在的位置:网站首页 java给列表赋值 Spring系列(九):Spring属性赋值注解@Value 用法介绍

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

2023-03-28 13:23| 来源: 网络整理| 查看: 265

目录

1、@Value注解的作用

2、@Value 注解的写法

3、用法示例

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

3.2  新增实体 Book.java

3.3 新增 TestValueConfig.java

3.4 新增 TestValue.java 测试文件

4、使用场景

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

       6164bedb333856ae45d5eb3a6356a6c6.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、对象列表。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3