数据源是否需要在spring的原型范围内jdbc

问题描述:

当我们使用spring jdbc时,首先定义一个dataSource bean并在创建jdbcTemplate对象时注入它。我想知道的是,我们是否需要在原型范围内定义这个数据源。除非整个应用程序只有一个dataSource对象。我认为这会影响应用程序的性能。数据源是否需要在spring的原型范围内jdbc

这里是我如何在spring配置文件中定义dataSouce。

<bean id="dataSource" 
    class="org.springframework.jdbc.datasource.DriverManagerDataSource" > 
<property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
<property name="url" value="jdbc:mysql://localhost:3306/testdb" /> 
<property name="username" value="root" /> 
<property name="password" value="123" /> 
</bean> 

在我的DAO类中,我有如下所示的自动装配的dataSOurce。

@Repository 
public class RecordDAOImpl { 

JdbcTemplate jdbcTemplate = null; 

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

} 

让我知道什么是为spring mvc web应用程序定义dataSource的最佳方法。

我想知道什么是我们需要在原型范围

来定义这个数据源不,我们不需要。我想这不是个好主意,我们可以使用某种连接池数据源和单例作用域bean。

我们也可以有多个数据库,并提供每个自己的数据源单身作用域,这是没有任何问题的。

让我知道什么是为spring mvc web应用程序定义dataSource的最佳方法。

在xml文件中定义数据源没有任何问题(尽管许多开发人员似乎都避免使用xml)。我喜欢用java配置来做,因为我觉得它更易于阅读。

取决于驱动程序和数据库它看起来或多或少这样的:

@Configuration 
class DatasourceConfig { 

    @Bean 
    DataSource datasource() { 
     PGPoolingDataSource dataSource = new PGPoolingDataSource(); 
     dataSource.setPassword("pass"); 
     dataSource.setPortNumber(123); 
     dataSource.setUser("user"); 
     dataSource.setMaxConnections(10); 
     return dataSource; 
    } 
}