java@AllArgsConstructor不使用Springbean
我正在上下面的课
@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
我还尝试添加龙目山。配置文件,并复制了限定符注释,这也没有帮助
spring版本是3.2.15。lombok版本1.18.16
它在下面工作得很好
@Autowired
public TestController(@Qualifier("userDAO") final Test testDAO) {
this.testDAO = testDAO;
}
如何解决这个问题
# 1 楼答案
仅添加一个
@AllArgsConstructor
是不够的,因为它将添加构造函数,但它不会添加@Autowired
。因为缺少该构造函数,Spring将查找默认构造函数要修复此问题,您可以执行以下三种操作之一
@Autowired
添加到构造函数中李>第一个应该很简单(在依赖项中包含一个较新版本的Spring)。第二个需要一些额外的代码
@Qualifier
将不起作用(应该删除),因为它应该在构造函数参数上在这种情况下,我会放弃Lombok,只添加构造函数(选项3)