springboot 自动注入,Jackson直接的自我参照导致循环

今天写了一段很简单的代码,如下
一个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天,您在需要使用的时候【私信】联系我,我会为您补发。