【发布时间】:2016-05-31 16:19:41
【问题描述】:
我有一个基本的 Spring Boot 应用程序,注释如下:
@SpringBootApplication
public class ApiApplication {
public static void main(String[] args) {
SpringApplication.run(ApiApplication.class, args);
}
}
我的application.properties 文件中有以下条目:
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/db
spring.datasource.username=dbuser
spring.datasource.password=dbpassword
据我了解,Spring Boot 应该能够从这些属性中自动自动装配 DataSource Bean。
但是,如果我尝试:
@Autowired
DataSource dataSource;
在我的应用程序中的任何地方(f.i. 在 @Configuration 文件中),我在 IntelliJ 中收到以下错误:
“无法自动装配。找不到 'DataSource' 类型的 bean。”
有什么明显的东西我错过了这个工作吗?
我有一个数据源。
【问题讨论】:
-
@EnableAutoConfiguration 也应该添加到主类之上。
-
@SpringBootApplication据说还添加了@EnableAutoConfiguration。我尝试手动添加它,但没有解决错误。 -
如果是这种情况,请为 Spring Boot 启用调试级别日志并检查 DataSource bean 发生了什么。
-
IntelliJ 具有出色的 Spring 支持,但并不总是最新的。例如,我上次检查它仍然无法识别未注释的 Spring Data 存储库。它们过去需要注释,但是如果它们扩展了适当的接口,则不再需要注释。
标签: spring spring-boot autowired