2016-05-31 130 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批註,否則只需忽略這些錯誤。