1.@autowire 旨在引入spring容器中的单例对象
2.你的Item类是一个实体类,一般用 作Item item = new Item();
实体类一般是不会交给spring容易初始化的,所以不需要@autowire ,都是手动new 的
3.如果你想让Item成为容器里的类,你需要将Item类上面加上@Component,这样就可以@autowire
4.另外@AllArgsConstructor 标注的类中 如果有一个常量如 pubilc final Item item;
并且这个item是一个spring bean(容器管理的bean)那么这个效果等同于
@autowire
Item item;
没有交给容器管理,这注解就是个摆设
给你的Item类加一个@Component再试一下
因为上面使用了构造器注解@AllArgsConstructor 下面所需要的对象都会通过构造器注入进来
一般单例的需要@Autowired注解来让Spring创建管理实例。
你这个Item是数据对象,显然不是单例的,所以不需要也不能用@Autowired注解