为什么application.yml中user.name属性的值是错误的?

时间:2016-06-22 05:25:29

标签: java spring yaml

这是一个简单的问题。 我有一个application.yml

server:
  port: 852

user:
  name: Jack
  name1: Tom
  description: ${user.name}

用户Java类:

@Component
@ConfigurationProperties(prefix = "user")
public class User {

    private String name;
    private String description;
    private String name1;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public String getName1() {
        return name1;
    }
    public void setName1(String name1) {
        this.name1 = name1;
    }   
}

最后有一个MVC Controller java类:

@RestController
public class HelloController {
    @Autowired User user;   

    @RequestMapping("/user")
    public String getUser() {
        return user.getName() + "--------" + user.getDescription() + "----" + user.getName1();
    }   
}

好的,似乎是正确的,但是当输入" localhost:852 / user"在浏览器地址,我得到错误的结果如下:

BG221726--------BG221726----Tom

请注意," BG221726"是我的电脑名称!我的代码有什么问题????

1 个答案:

答案 0 :(得分:2)

您正在有效地使用user.name这是由java设置的special system property。当使用property resolving mechanism系统属性优先于从属性文件加载的属性时,将采用该属性。

克服使用不同的前缀。