2017-04-19 21 views
3
@Configuration 
public class ApplicationConfig { 

    private DataSource dataSource; 

    @Autowired 
    public ApplicationConfig(DataSource dataSource) { 
    this.dataSource = dataSource; 
    } 

    @Bean(name="clientRepository") 
    ClientRepository jpaClientRepository() { 
    return new JpaClientRepository(); 
    } 
} 

我只是找到了一個核心Spring 4.2的認證模擬考試以及有關此類它說,"Default or no-arg constructor is mandatory."
我想這個類在測試我做了和它完美的作品沒有默認或無參數構造函數(?),所以我認爲沒有必要使用默認或無參數構造函數Spring MVC的默認或配置類無參數的構造

+1

這取決於...直到春季4.2它是4.3之後,它不再是。 –

回答

5

如果您的Spring版本是< = 4.2,那麼該語句是正確的。但是對於Spring> = 4.3,允許有一個@Configuration類,沒有無參數構造函數。

另請參閱參考指南中關於此的Core Container Improvements部分。它已在Spring 4.3 RC1中以問題SPR-13471執行。

專業提示:如果你只有一個構造函數,你不需要在構造@Autowired了。 (見SPR-12278))。

相關問題