Spring Boot學習一之Spring Beans和依賴注入
你可以自由地使用任何標準的Spring框架技術去定義beans和它們注入的依賴。簡單起見,我們經常使用 @ComponentScan 註解搜尋beans,並結合 @Autowired 構造器注入。
如果遵循以上的建議組織程式碼結構(將應用的main類放到包的最上層,即rootpackage),那麼你就可以新增 @ComponentScan 註解而不需要任何引數,所有應用元件( @Component , @Service , @Repository , @Controller 等)都會自動註冊成Spring Beans。
下面是一個 @Service Bean的示例,它使用構建器注入獲取一個需要的 RiskAssessor bean
package com.example.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class DatabaseAccountService implements AccountService {
private final RiskAssessor riskAssessor;
@Autowired
public DatabaseAccountService(RiskAssessor riskAssessor) {
this.riskAssess= riskAssessor;
}
// ...
}
注 注意使用構建器注入允許 riskAssessor 欄位被標記為 final ,這意味著 riskAssessor 後續是不能改變的
@SpringBootApplication 註解等價於以預設屬性使用 @Configuration , @EnableAutoConfiguration 和 @ComponentScan