Java 没有默认构造函数的Autowire Bean,使用配置注释

Java 没有默认构造函数的Autowire Bean,使用配置注释,java,spring,javabeans,Java,Spring,Javabeans,我有一个我希望在单元测试中自动连接的存储库类。我当前在运行测试时遇到“无默认构造函数”错误 所讨论的类没有默认构造函数,我是spring新手,因此可能没有在config类中正确创建Bean 下面是有问题的Bean(没有默认构造函数) @存储库 公共类GenericDaoImpl实现GenericDao{ config类 @Configuration @EnableAspectJAutoProxy @ComponentScan(basePackages = "com.example") publ

我有一个我希望在单元测试中自动连接的存储库类。我当前在运行测试时遇到“无默认构造函数”错误

所讨论的类没有默认构造函数,我是spring新手,因此可能没有在config类中正确创建Bean

下面是有问题的Bean(没有默认构造函数)

@存储库
公共类GenericDaoImpl实现GenericDao{
config类

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

    @Bean
    GenericDaoImpl<AbstractEntity> genericDoaIpm(final Class<AbstractEntity> tClass) {
        return new GenericDaoImpl<AbstractEntity>(tClass);
    }
}
@配置
@促性腺激素
@ComponentScan(basePackages=“com.example”)
公共类AppConfig{
@豆子
GenericDaoImpl genericDoaIpm(最终类tClass){
返回新的GenericDaoImpl(tClass);
}
}
在测试中,我有:

@Autowired
private GenericDaoImpl<AbstractEntity> genericDaoImpl;
@Autowired
私有GenericDaoImpl GenericDaoImpl;
这里是否有我遗漏或做错的地方?

根据和,您只需要使用
@Autowired
标记您的构造函数

GenericDaoImpl.java

@Autowired
public GenericDaoImpl(Class<?> tClass) {
    ...
}
@Autowired
公共通用DAOImpl(类tClass){
...
}
您也可以将@Autowired应用于构造函数。构造函数@Autowired注释指示在创建bean时构造函数应该自动连接,即使在XML文件中配置bean时没有使用任何元素


这只适用于具有默认构造函数的bean,而我的没有,因此需要更多。我不确定您是否理解我的意思,我添加了一个示例以防万一谢谢,这似乎是可行的,但现在我遇到了无法自动连接java.lang.class类型的bean的问题。但这是另一个问题。
@Autowired
public GenericDaoImpl(Class<?> tClass) {
    ...
}