Spring @Autowired和@Required引发异常
我了解到,如果容器找不到用于依赖项注入的bean,@Required注释会引发此异常:Spring @Autowired和@Required引发异常,spring,Spring,我了解到,如果容器找不到用于依赖项注入的bean,@Required注释会引发此异常: org.springframework.beans.factory.BeanInitializationException 对于@Autowired,例外情况是:org.springframework.beans.factory.BeanCreationException 考虑到这些情况: 我在bean a中使用@Required注入另一个不存在的bean B,然后启动应用程序。 我在bean a中使用@Au
org.springframework.beans.factory.BeanInitializationException
对于@Autowired,例外情况是:org.springframework.beans.factory.BeanCreationException
考虑到这些情况:
我在bean a中使用@Required注入另一个不存在的bean B,然后启动应用程序。
我在bean a中使用@Autowired注入另一个不存在的bean B,然后启动应用程序
我想知道@Required和@Autowired的异常何时抛出?是同一时间吗?加载spring应用程序上下文时?
spring正在使用Required AnnotationBeanPostProcessor
和
通过AutowiredNotationBeanPostProcessor
处理注释。根据源代码和,分别订购这两个后处理器。@Autowired
的顺序为Integer.MAX\u值-2
,而@Required
的顺序为Integer.MAX\u值-1
。根据,值越低优先级越高
基于此,我相信@Autowired
bean后处理器将在@Required
之前运行。因此,为了回答您的问题,当创建spring应用程序上下文时,@Autowired
的可能异常将在@Required
的异常之前抛出