我正在创建一个使用spring 4.3.0的库。一个spring-boot应用程序将使用此库。目前,我在Spring-Boot应用程序的主类中使用@ComponentScan来扫描库中的Bean,而不是我想自动配置它。所以我做的是我在库中创建了一个配置类,并在配置中声明了@ComponentScan文件。创建自动配置弹簧库以弹簧启动应用程序
消费春季启动应用程序的库后它不扫描库内的豆类和罚球,
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.sample.book.client.service.BookService] found for dependency [com.sample.book.client.service.BookService]: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1406)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1057)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1019)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:566)
... 33 common frames omitted
如何解决这个问题?为什么Spring在@Configuration之前扫描@service类?
您的帮助应该是可观的,如果需要,我会提供代码示例。
我的春天启动的应用程序已经与@SpringBootApplication所以再次宣称SpringBootApplication将redundant.Also已指定“META-INF/spring.factories”注明,我的库是用弹簧不是春,那么启动我如何使用以下导入“org.springframework.boot.autoconfigure.EnableAutoConfiguration”指定自动配置? “EnableAutoConfiguration”由spring-boot提供,不是spring请纠正我,如果我错了 – VelNaga
当你的应用程序是allready a @ SpringBootApplication时,你有AutoConfiguration启用。然后,您可以在库JAR中放置META-INF/spring-factories,或者您可以@导入您的库的配置 –
它可以工作。谢谢。我跟着META-INF/spring.factories“的方法,它的工作方式就像一个魅力,但是你能定义@Import还是可以请你分享一个关于”@Import“的链接? – VelNaga