今天写了一段很简单的代码,如下
一个Teacher对象,实例变量有姓名、年龄,然后放到容器中,在Controller中自动注入,通过@ResponseBody 返回给浏览器,
但是总是报错误
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Direct self-reference leading to cycle
我在返回之间sout这个对象,也能正常输出内容,自己new一个Teacher对象也能正常转为json返回给浏览器
只要用自动注入就出问题。
而且我新建了一个新的,只有web场景的springboot项目,同样的代码,项目又能正常返回自动注入的json 了。很奇怪。
代码如下
@ConfigurationProperties("teacher")
@Component("teacher")
public class Teacher {
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
@Autowired
private Teacher teacher;
@GetMapping("/teacher")
@ResponseBody
public Teacher profile() {
System.out.println(teacher);
return teacher;
}
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。
因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。