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