【问题标题】:spring boot dependency injectionspring boot 依赖注入
【发布时间】:2015-07-16 16:34:59
【问题描述】:

我是 Spring 新手,最近几天我一直在学习它。现在我试图用它做点什么。在我看来,有了弹簧靴,一切都变了。 没有 applicationContext 文件,我应该使用@Bean。好的。在教程中,代码正在运行,对我来说它失败了。我错过了什么?

@SpringBootApplication
public class Application {

  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }
}

控制器:

@RestController
public class GreetingController {

private final Test test;

@Autowired
public GreetingController(Test test){
    this.test = test;
}

@RequestMapping("/greeting")
  public String greeting(@RequestParam(value = "name", defaultValue = "World") String name) {
    return "greeting" + test.getTest();
  }
}


class Test {

  public String getTest() {
    return "tetst";
  }
}

错误:

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [hello.Test] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
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.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:813)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:741)
... 18 more

我认为必须定义 bean...但是在教程中没有定义 bean..或者我没有看到它。

【问题讨论】:

  • ApplicationGreetingController 在什么包中? @SpringBootApplication 扫描控制器和组件,但它们必须在同一个包或更低级别的包中。

标签: java spring spring-mvc spring-boot


【解决方案1】:

Test 类未被识别为 Spring 组件。因此,您不能将其注入您的GreetingController。为了在该控制器中注入Test 对象,请使用@Component 注释(或其他一些指示您的类可以自动扫描的注释)注释Test 类。

【讨论】:

    【解决方案2】:

    错过了完整的错误。你需要@Component Test

    【讨论】:

      猜你喜欢
      • 2018-11-21
      • 2016-06-05
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-20
      • 2012-12-23
      • 1970-01-01
      相关资源
      最近更新 更多