spring boot org.springframework.beans.factory.BeanCreationException:无法自动assembly字段:

我从spring-boot开始,我有一些配置问题。 我不能自动提供某些服务。 我得到一个BeanCreationException。

我的应用类:

@SpringBootApplication @EnableAutoConfiguration @ComponentScan(basePackages = "com.x.server", basePackageClasses = { OAuth2ServerConfiguration.class, AController.class, BController.class }) public class Application extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } public static void main(String[] args) { new Application().configure(new SpringApplicationBuilder(Application.class)).run(args); } } 

在我的项目结构中:

 ----com.x.server --------Application.java ----com.x.server.controller --------AController.java --------BController.java ----other packages ----com.x.server.service --------WYXService --------ABCService ----com.x.server.service.serviceImpl --------WYXServiceImpl --------ABCServiceImpl 

接口我的服务

 public interface WYXService { public void setClazz(final Class clazzToSet); public void createEntity(T t); public void removeEntity(T t); } 

并实施

 @Transactional @Service("wyxService") public class WYXServiceImpl implements WYXService 

Hier是我自动assembly服务的控制器:

 @Path("/test") @Component @Controller @Produces(MediaType.APPLICATION_JSON) public class BController { @Autowired WYXService wyxService; 

控制台的错误:

 Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.x.server.service.WYXService com.x.server.controller.BController.wyxService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.x.server.service.WYXService] found for dependency: 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.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:561) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331) ... 25 more Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.x.server.service.WYXService ] found for dependency: 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.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1301) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1047) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:942) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:533) ... 27 more 

当我从compenentscan中删除两个控制器时,我没有这个错误但我需要扫描那些控制器来访问端点。

有人有什么想法?

干杯

我也删除了jersey依赖:

   org.springframework.boot spring-boot-starter-jersey  

然后我添加了sprint-boot-starter-web依赖项

  org.springframework.boot spring-boot-starter-web  

我只是删除Jersey依赖项,只使用spring的本机REST-api(RequestMapping)。 它有效。 我认为,弹簧靴和jersey并不能很好地协同工作。