java – Spring Hateoas @EnableEntityLinks不提供EntityLinks bean(NoSuchBeanDefinitionException)

前端之家收集整理的这篇文章主要介绍了java – Spring Hateoas @EnableEntityLinks不提供EntityLinks bean(NoSuchBeanDefinitionException)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个使用Spring HATEOAS的Spring Boot应用程序,它启用了@EnableEntityLinks.该应用程序有一个mvc控制器,包含一个字段@Autowired EntityLinks entityLinks.

我希望@EnableEntityLinks提供EntityLinks bean(根据:Exposing and Managing Links with Spring HATEOAS),但我得到NoSuchBeanDefinitionException:找不到类型为[org.springframework.hateoas.EntityLinks]的限定bean

该应用程序是一个测试应用程序,因此它非常小:

Application.java:

  1. @ComponentScan
  2. @EnableAutoConfiguration
  3. @EnableEntityLinks
  4. public class Application {
  5. public static void main(String[] args) {
  6. SpringApplication.run(Application.class,args);
  7. }
  8. }

CustomerController:

  1. @Controller
  2. @ExposesResourceFor(Customer.class)
  3. @RequestMapping(value = "/customers",produces = "application/json")
  4. public class CustomerController {
  5. @Autowired
  6. private EntityLinks entityLinks;
  7. @RequestMapping(method=RequestMethod.GET)
  8. @ResponseBody
  9. public ResponseEntity

Customer.java

  1. public class Customer extends ResourceSupport {
  2. private Long id;
  3. private String firstName;
  4. public Customer(Long id,String firstName) {
  5. this.id = id;
  6. this.firstName = firstName;
  7. }
  8. public String getFirstName() {
  9. return firstName;
  10. }
  11. public void setFirstName(String firstName) {
  12. this.firstName = firstName;
  13. }
  14. }

的pom.xml

  1. ...

例外:

  1. 2014-01-27 15:04:22.928 INFO 5036 --- [ main] .c.l.ClasspathLoggingApplicationListener : Application Failed to start with classpath: [file:/C:/workspaces/Seedmatch33/gs-rest-hateoas-initial/target/classes/,file:/C:/.m2repo/org/springframework/boot/spring-boot-starter-web/1.0.0.RC1/spring-boot-starter-web-1.0.0.RC1.jar,file:/C:/.m2repo/org/springframework/boot/spring-boot-starter/1.0.0.RC1/spring-boot-starter-1.0.0.RC1.jar,file:/C:/.m2repo/org/springframework/boot/spring-boot/1.0.0.RC1/spring-boot-1.0.0.RC1.jar,file:/C:/.m2repo/org/springframework/boot/spring-boot-autoconfigure/1.0.0.RC1/spring-boot-autoconfigure-1.0.0.RC1.jar,file:/C:/.m2repo/org/springframework/boot/spring-boot-starter-logging/1.0.0.RC1/spring-boot-starter-logging-1.0.0.RC1.jar,file:/C:/.m2repo/org/slf4j/jcl-over-slf4j/1.7.5/jcl-over-slf4j-1.7.5.jar,file:/C:/.m2repo/org/slf4j/jul-to-slf4j/1.7.5/jul-to-slf4j-1.7.5.jar,file:/C:/.m2repo/org/slf4j/log4j-over-slf4j/1.7.5/log4j-over-slf4j-1.7.5.jar,file:/C:/.m2repo/ch/qos/logback/logback-classic/1.0.13/logback-classic-1.0.13.jar,file:/C:/.m2repo/ch/qos/logback/logback-core/1.0.13/logback-core-1.0.13.jar,file:/C:/.m2repo/org/springframework/boot/spring-boot-starter-tomcat/1.0.0.RC1/spring-boot-starter-tomcat-1.0.0.RC1.jar,file:/C:/.m2repo/org/apache/tomcat/embed/tomcat-embed-core/7.0.47/tomcat-embed-core-7.0.47.jar,file:/C:/.m2repo/org/apache/tomcat/embed/tomcat-embed-logging-juli/7.0.47/tomcat-embed-logging-juli-7.0.47.jar,file:/C:/.m2repo/org/springframework/spring-web/4.0.0.RELEASE/spring-web-4.0.0.RELEASE.jar,file:/C:/.m2repo/aopalliance/aopalliance/1.0/aopalliance-1.0.jar,file:/C:/.m2repo/org/springframework/spring-webmvc/4.0.0.RELEASE/spring-webmvc-4.0.0.RELEASE.jar,file:/C:/.m2repo/org/springframework/spring-expression/4.0.0.RELEASE/spring-expression-4.0.0.RELEASE.jar,file:/C:/.m2repo/com/fasterxml/jackson/core/jackson-databind/2.3.1/jackson-databind-2.3.1.jar,file:/C:/.m2repo/com/fasterxml/jackson/core/jackson-annotations/2.3.0/jackson-annotations-2.3.0.jar,file:/C:/.m2repo/com/fasterxml/jackson/core/jackson-core/2.3.1/jackson-core-2.3.1.jar,file:/C:/.m2repo/org/springframework/plugin/spring-plugin-core/0.8.0.RELEASE/spring-plugin-core-0.8.0.RELEASE.jar,file:/C:/.m2repo/org/springframework/spring-beans/4.0.0.RELEASE/spring-beans-4.0.0.RELEASE.jar,file:/C:/.m2repo/org/springframework/spring-context/4.0.0.RELEASE/spring-context-4.0.0.RELEASE.jar,file:/C:/.m2repo/org/springframework/spring-aop/4.0.0.RELEASE/spring-aop-4.0.0.RELEASE.jar,file:/C:/.m2repo/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar,file:/C:/.m2repo/org/springframework/hateoas/spring-hateoas/0.8.0.RELEASE/spring-hateoas-0.8.0.RELEASE.jar,file:/C:/.m2repo/org/springframework/spring-core/4.0.0.RELEASE/spring-core-4.0.0.RELEASE.jar,file:/C:/.m2repo/org/objenesis/objenesis/1.3/objenesis-1.3.jar]
  2. Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'customerController': Injection of autowired dependencies Failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springframework.hateoas.EntityLinks test.CustomerController.entityLinks; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.hateoas.EntityLinks] 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)}
  3. at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:292)
  4. at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.populateBean(AbstractAutowireCapablebeanfactory.java:1185)
  5. at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.doCreateBean(AbstractAutowireCapablebeanfactory.java:537)
  6. at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.createBean(AbstractAutowireCapablebeanfactory.java:475)
  7. at org.springframework.beans.factory.support.Abstractbeanfactory$1.getObject(Abstractbeanfactory.java:304)
  8. at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
  9. at org.springframework.beans.factory.support.Abstractbeanfactory.doGetBean(Abstractbeanfactory.java:300)
  10. at org.springframework.beans.factory.support.Abstractbeanfactory.getBean(Abstractbeanfactory.java:195)
  11. at org.springframework.beans.factory.support.DefaultListablebeanfactory.preInstantiateSingletons(DefaultListablebeanfactory.java:700)
  12. at org.springframework.context.support.AbstractApplicationContext.finishbeanfactoryInitialization(AbstractApplicationContext.java:760)
  13. at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
  14. at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:124)
  15. at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:658)
  16. at org.springframework.boot.SpringApplication.run(SpringApplication.java:355)
  17. at org.springframework.boot.SpringApplication.run(SpringApplication.java:920)
  18. at org.springframework.boot.SpringApplication.run(SpringApplication.java:909)
  19. at Application.main(Application.java:12)
  20. Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springframework.hateoas.EntityLinks test.CustomerController.entityLinks; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.hateoas.EntityLinks] 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)}
  21. at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:508)
  22. at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
  23. at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:289)
  24. ... 16 more
  25. Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.hateoas.EntityLinks] 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)}
  26. at org.springframework.beans.factory.support.DefaultListablebeanfactory.raiseNoSuchBeanDefinitionException(DefaultListablebeanfactory.java:1100)
  27. at org.springframework.beans.factory.support.DefaultListablebeanfactory.doResolveDependency(DefaultListablebeanfactory.java:960)
  28. at org.springframework.beans.factory.support.DefaultListablebeanfactory.resolveDependency(DefaultListablebeanfactory.java:855)
  29. at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:480)
  30. ... 18 more
最佳答案
确保您的代码,poms或配置文件中的任何地方没有关闭Autwire或设置为false(例如annotation-config =“false”)这可能会导致问题.

另外,仔细检查任何类中缺少的JAR / WAR / etc或缺少注释(例如@EnableEntityLinks).

猜你在找的Spring相关文章