我正在上如下所示的课程
@Controller
@RequestMapping(value = "/test")
@AllArgsConstructor
public class TestController {
@Qualifier("userDAO")
private final Test testDAO;
}
以下是我的bean注册。
<bean id="userDAO" class="com.test.dao.TestImpl"
p:sqlSessionFactory-ref="testSqlSessionFactory" />
当我运行我的应用程序时,出现如下错误:
No default constructor found; nested exception is java.lang.NoSuchMethodException bean configuration
我尝试在根目录中添加了lombok.config文件,并复制了Qualifier注解,但没有帮助。
spring版本为3.2.15,lombok版本为1.18.16。
以下方法可以正常工作。
@Autowired
public TestController(@Qualifier("userDAO") final Test testDAO) {
this.testDAO = testDAO;
}
如何解决这个问题?
@AllArgs
相反。 - rzwitserloot@AllArgsConstructor
更改为@NoArgsConstructor
,注入就应该可以工作了。 - FaltFelombok.copyableAnnotations += org.springframework.beans.factory.annotation.Qualifier
,但仍然没有起作用。 - Remo@AllArgsConstructor
是不够的,因为它只会添加构造函数,但是它不会添加@Autowired
。由于缺少它,它将寻找默认构造函数。您还需要指示lombok将@Autowired
添加到构造函数中。或者升级到Spring 4.3或更高版本,它将自动检测单个构造函数并使用它。 - M. Deinum