SpringBoot属性注入
首先准备好一个简单的SpringBoot项目,加入相关的依赖,这里就不做操作了
1、@Value 进行注入
application.properties 配置文件
strValue=这是字符串
intValue=1
doubleValue=10.2
person1.name=张三
city=广州,深圳,佛山
mapV={k1:'v1','k2':'v2'}
@Value的值有以下三大类:
①**@Value(“${ property : default_value}”)**
$注入的是外部配置文件对应的property,使用“ : ”对未配置或值为空的属性设置默认值。
②@Value(“#{ obj.property? :default_value}”)
#注入的是SpEL表达式对应的内容,使用“ ?: ”对未配置或值为空的表达式设置默认值。
③直接把值注入
@Value(“字符串类型的值”)
注意:在注入整型、Map时 需要使用 #{${}} 结合使用(可能在高版本的SpringBoot中有改变,我并不清楚这个)
测试类的代码:
package com.gx.democonfig.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.Map;
@RestController
public class Test {
//通过配置属性注入
@Value("${strValue : 就算有值,还是默认值优先}")
private String str;
@Value("#{${intValue}}")
private int intValue;
@Value("#{${doubleValue}}")
private double doubleValue;
@Value("${person1.name}")
private String name;
@Value("${city}")
private String[] list;
@Value("#{${mapV}}")
Map<String, Object> mapList;
//直接注入
@Value("zhangsan")
private String userName;
@Value("123")
private int num