【发布时间】:2019-09-18 21:58:20
【问题描述】:
我不断遇到问题标题中提到的问题。
我想介绍一些 DI 使用 i.a. applicationContext.xml 文件和 @ImportResource 注释。我检查了一些将applicationContext.xml 位置传递给@ImportResource 的方法
但他们不工作。在关闭测试的情况下执行编译。我在项目和项目树中的某些文件的下面部分发布。你有什么想法我该如何克服这个问题?
GitHubDetailsApplication
package pl.cd.githubdetails;
// imports ...
@SpringBootApplication
// doesnt work:
// @ImportResource(locations = {"applicationContext.xml"})
// @ImportResource(locations = {"classpath:applicationContext.xml"})
// @ImportResource({"classpath*:applicationContext.xml"})
@ImportResource({"/applicationContext.xml"}) // also doesnt work
public class GitHubDetailsApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(GitHubDetailsApplication.class, args);
}
}
项目树
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="pl.cd.githubdetails"/>
</beans>
GitController
package pl.cd.githubdetails;
// imports
@RestController
public class GitController {
@Autowired
GitHttpClient gitHttpClient;
// ...
}
GitHttpClient
package pl.cd.githubdetails;
public class GitHttpClient {
// imports ...
private RestTemplate restTemplate;
public GitHttpClient() {
this.restTemplate = new RestTemplate();
}
// ...
}
编辑我插入堆栈。
2019-09-19 00:25:20.413 WARN 13584 --- [main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'gitController': Unsatisfied dependency expressed through field 'gitHttpClient'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'pl.cd.githubdetails.GitHttpClient' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
2019-09-19 00:25:20.415 INFO 13584 --- [main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
2019-09-19 00:25:20.425 INFO 13584 --- [main] ConditionEvaluationReportLoggingListener : Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-09-19 00:25:20.497 ERROR 13584 --- [main] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
Field gitHttpClient in pl.cd.githubdetails.GitController required a bean of type 'pl.cd.githubdetails.GitHttpClient' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Action:
Consider defining a bean of type 'pl.cd.githubdetails.GitHttpClient' in your configuration.
【问题讨论】:
-
告诉我们你到底得到了什么异常。
-
@mentallurg 问题已编辑。
标签: java spring spring-boot