在许多关于spring JDBC的教程/书籍中,RowMapper
类通常在DAO中表示为private static final class
,并且在每个查询中都创建了实例。
是否必须使用RowMapper
并以这种方式实例化?
如果我使用RowMapper
注释将@Component
类定义为spring bean并将@Autowired
定义为我的dao类,是否可以?
哪一个更好?
答案 0 :(得分:2)
是否必须使用
RowMapper
并以这种方式实例化
不,这只是一种常见的使用模式。
如果我使用
RowMapper
注释将@Component
类定义为spring bean并将@Autowired
定义为我的dao类,是否可以?
当然,那会有用。但是,除非RowMapper
需要访问其他Spring服务,否则没什么意义。
哪一个更好?
如果没有看到您的代码并了解您的应用程序,我们无法真正告诉您这是否是一个好主意,只有您可以做出选择。
我个人的偏好是将RowMapper
保留为DAO类的非静态内部类,并直接从DAO中进行实例化。如果RowMapper
需要访问其他Spring bean,那么将这些bean连接到DAO,并从RowMapper
内部类访问它们。