自动装配JdbcTemplate与数据源?

时间:2019-07-03 16:35:21

标签: spring-jdbc

在实现非jpa / orm DAO层时,哪种做法是正确/更好的做法?

@Repository
public class SampleDao {

    private JdbcTemplate jdbcTemplate;

    public SampleDao(DataSource dataSource) {
        this.jdbcTemplate = new JdbcTemplate(dataSource);
    }

    // --- OR ---

    public SampleDao(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

}

1 个答案:

答案 0 :(得分:0)

在Spring Boot应用程序中,通常建议注入JdbcOperations而不是注入JdbcTemplate或从JdbcTemplate创建新的DataSource实例。 JdbcOperations界面由自动配置的JdbcTemplate实现。

原因如下:

  • 该bean已经定义好了,因此对象实例减少了一个
  • JdbcOperations不会出现任何设置器,因此您不会意外更改共享单例bean上的内容
  • 您可以使用spring.jdbc.template...应用程序属性对其进行配置
  • 如果您需要进行测试,则比起DataSource进行模拟更容易