簡體   English   中英

沒有默認構造函數的Autowire Bean,使用config批注

[英]Autowire Bean with no default constructor, using config annotation

我有這個Repository類,希望在單元測試中自動連線。 我目前在運行測試時遇到“沒有默認構造函數”錯誤。

有問題的類沒有默認的構造函數,我是spring的新手,所以可能沒有在config類中正確創建Bean。

以下是有問題的Bean(沒有默認構造函數)

@Repository
public class GenericDaoImpl<T extends AbstractEntity> implements GenericDao<T> {

配置類

@Configuration
@EnableAspectJAutoProxy
@ComponentScan(basePackages = "com.example")
public class AppConfig {

    @Bean
    GenericDaoImpl<AbstractEntity> genericDoaIpm(final Class<AbstractEntity> tClass) {
        return new GenericDaoImpl<AbstractEntity>(tClass);
    }
}

在測試中,我有:

@Autowired
private GenericDaoImpl<AbstractEntity> genericDaoImpl;

我有什么想念的地方嗎?

根據 一點 ,您只需要用@Autowired標記您的構造函數。

GenericDaoImpl.java

@Autowired
public GenericDaoImpl(Class<?> tClass) {
    ...
}

您也可以將@Autowired應用於構造函數。 構造函數@Autowired批注指示即使在XML文件中配置Bean時不使用任何元素,也應在創建Bean時自動構造該構造函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM