springboot 的@value取不到正确的值
- 写了一个简单的属性注入demo,发现个问题,因为开发中习惯性的写user,所以恰好问题也出在这里。
- 代码如下
package com.demo.zz;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class zz {
public static void main(String[] args) {
SpringApplication.run(zz.class, args);
System.err.println(44566);
}
@Value("${user.name}")
private String name;
@RequestMapping("/getinfo")
public String getInfo() {
return "name is :" + name+age;
}
}
- application.properties中的配置
server.port=8852
user.name=sdfas
user.age=155
测试结果
- 我们在postman或者浏览器中访问这个接口,最开始当我们的配置文件中值有name时,我们获取到的值是自己电脑的主机名
- 当我们的只注入user.age时,会发现不能解析这个注解。会发生参数异常
备注
项目中最好不用user来当做配置文件中属性