目录
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 用法,希望对大家能有所帮助!
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;}@Overridepublic 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 {@Beanpublic 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、对象列表。