SpingBoot中的注解ConfigurationProperties注解取值为null

SpingBoot中的注解ConfigurationProperties注解取值为null

第一次接触ConfigurationProperties注解

@Controller
@ConfigurationProperties(prefix = "person")
public class QuickController {

    private String name;
    private String addr;

    @RequestMapping("/quick")
    @ResponseBody
    public String quick() {
        return "name : " + name
                + " addr : " + addr;
    }


}

值的结果为null,application.yml配置如下:

person:
  addr: beijing
  name: zhangsan

在属性上使用@Value()注解 结果没问题 取值正常**

@Controller
public class QuickController {
    @Value("${person.name}")
    private String name;
    @Value("${person.addr}")
    private String addr;

    @RequestMapping("/quick")
    @ResponseBody
    public String quick() {
        return "name : " + name
                + " addr : " + addr;
    }
}

说明是@ConfigurationProperties注解的问题

最后发现原来@ConfigurationProperties注解需要类中有get和set方法

@Controller
@ConfigurationProperties(prefix = "person")
@Data
public class QuickController {

    private String name;
    private String addr;

    @RequestMapping("/quick")
    @ResponseBody
    public String quick() {
        return "name : " + name
                + " addr : " + addr;
    }
}

添加了@Data注解 问题解决

你可能感兴趣的:(java)