2016-05-31 126 views
5

我有一个基本的春天启动应用程序注释是这样的:春季启动 - 自动装配一个DataSource豆

@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 

从我的理解春季启动应该能够自动从这些属性中自动装入一个DataSource Bean。

但是,如果我尝试:

@Autowired 
DataSource dataSource; 

在我的应用程序(在@Configuration文件FI)的任何地方,我得到以下错误的IntelliJ:

“无法自动装配无豆。找到'DataSource'类型。“

有没有什么明显的我失踪了这个工作?

我有一个数据源。

+0

@EnableAutoConfiguration也应该添加在主类的顶部。 –

+2

'@ SpringBootApplication'应该也会添加'@ EnableAutoConfiguration'。我尝试手动添加它,但没有解决错误。 – vtosh

+0

如果是这种情况,请为Spring引导启用调试级别日志并检查DataSource bean发生了什么。 –

回答

1

这个bean实际上得到了正确的初始化。这可能只是一个IntelliJ工具提示错误。

添加@SuppressWarnings隐藏邮件将无需进一步的问题。

+0

这是正确的,只是有相同的问题 - 即使在IntelliJ IDEA 2017.1.3 Build#IU-171.4424.56,建于2017年5月12日,这仍然存在。尽管IntelliJ警告冲突,但Bean仍然正确连线 – DevDio

2

Intelij显然甚至在2016.2仍然不支持@SpringBootApplication注释。您必须删除@SpringBootApplication批注并将其替换为@Configuration,@EnableAutoConfiguration和@ComponentScan批注,否则只需忽略这些错误。