将RowMapper类定义为spring bean是否可以?

时间:2012-02-03 06:54:07

标签: spring spring-jdbc

在许多关于spring JDBC的教程/书籍中,RowMapper类通常在DAO中表示为private static final class,并且在每个查询中都创建了实例。 是否必须使用RowMapper并以这种方式实例化?

如果我使用RowMapper注释将@Component类定义为spring bean并将@Autowired定义为我的dao类,是否可以?

哪一个更好?

1 个答案:

答案 0 :(得分:2)

  

是否必须使用RowMapper并以这种方式实例化

不,这只是一种常见的使用模式。

  

如果我使用RowMapper注释将@Component类定义为spring bean并将@Autowired定义为我的dao类,是否可以?

当然,那会有用。但是,除非RowMapper需要访问其他Spring服务,否则没什么意义。

  

哪一个更好?

如果没有看到您的代码并了解您的应用程序,我们无法真正告诉您这是否是一个好主意,只有您可以做出选择。

我个人的偏好是将RowMapper保留为DAO类的非静态内部类,并直接从DAO中进行实例化。如果RowMapper需要访问其他Spring bean,那么将这些bean连接到DAO,并从RowMapper内部类访问它们。