当我们使用spring jdbc时,首先我们定义一个dataSource bean并在创建jdbcTemplate对象时注入它。我想知道的是我们是否需要在原型范围内定义此dataSource。除非整个应用程序只有一个dataSource对象。我认为这会降低应用程序性能。
以下是我在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的最佳方法是什么。
答案 0 :(得分:1)
我想知道的是我们是否需要在原型范围中定义此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;
}
}