spring boot @Autowired

如何在一个没有注解的类中加入一个已经注解的@Autowired?

classA 没有添加xml也没有注解到spring中

classB @Component 已经加入注解

如何在classA 中用@Autowired 注解classB?

如果classA也 @Component了,classB可用,但是不注解就会报错。

阅读 5.1k
4 个回答

做个SpringContextHolder

@Component 是spring的一个bean类型的注解,添加有这个注解之后才会将该bean由spring管理,如果不加这个注解的话,spring就无法识别这个类,所以就会报错,如果加上这个注解之后spring就知道这两个类是spring中的两个bean,可以相互进行自动注入。 对spring的理解还不够深刻,说的可能有问题,仅仅是个人见解

从 applicationContext 中用 service 名获取。

@Autowired是表示注入, 要使用注入, 你的类必须交给spring管理, 意思就是你的class B必须是是一个spring的bean, class A也必须是一个spring的bean, 你报错就是因为你的class A不是一个spring的bean, spring无法帮你注入class B.
如果要在不是spring bean的class A中使用class B只能手动把class Bset进去.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题