Singleton 与原型 JdbcTemplate

Evg*_*rov 3 singleton spring jdbc spring-jdbc

根据Spring 文档,JDBCTemplate 类“可以通过使用 DataSource 引用直接实例化在服务实现中使用,或者在应用程序上下文中做好准备并作为 bean 引用提供给服务”。

public class JdbcCorporateEventDao implements CorporateEventDao {

    private JdbcTemplate jdbcTemplate;

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

}
Run Code Online (Sandbox Code Playgroud)

我想知道,与在上下文中定义jdbctemplate为单例并直接将其注入到Dao

 public class JdbcCorporateEventDao implements CorporateEventDao {
        @Autowired
        private JdbcTemplate jdbcTemplate;
    
        public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
            this.jdbcTemplate = jdbcTemplate;
        }
    
    }
Run Code Online (Sandbox Code Playgroud)

Kei*_*ith 5

来自JdbcTemplate的类级文档:

可以通过使用 DataSource 引用直接实例化在服务实现中使用,或者在应用程序上下文中做好准备并作为 bean 引用提供给服务。

两者都可以。这里我有一个大型应用程序(50 个 DAO,100 个并发用户),整个应用程序有一个 jdbcTemplate 对象,在 Spring 上下文中定义。这很好用。