繁体   English   中英

如何在Spring中配置DataSource?

[英]How do you configure a DataSource in Spring?

我正在攻读Spring Core认证,我对如何正确回答这个问题有一些疑问:

如何在Spring中配置DataSource? 哪个bean对开发非常有用?

我认为我这样做是为了在Spring XML配置文件中配置DataSource

<bean id=“dataSource” class=“org.apache.commons.dbcp.BasicDataSource”>
    <property name=“url” value=“${dataSource.url}” />
    <property name=“username” value=“${dataSource.username}” />
    <property name=“password” value=“${dataSource.password}” />
</bean>

<jdbc:initialize-database data-source=“dataSource”>
    <jdbc:script location=“classpath:schema.sql” />
    <jdbc:script location=“classpath:test-data.sql” />
</jdbc:initialize-database>

所以我认为回答的bean是org.apache.commons.dbcp.BasicDataSource 这个断言是真的还是我错过了什么?

究竟代表什么声明 配置标签? 对我来说很明显它做了什么,但究竟代表什么? 这是一个特殊的豆类宣言还是什么?

TNX

我认为必须帮助创建内存DB以用于DEV目的:

@Bean
@Profile("dev")
public DataSource devDataSource() {
    return new EmbeddedDatabaseBuilder()
        .setType(EmbeddedDatabaseType.HSQL)
        .addScript("classpath:com/bank/config/sql/schema.sql")
        .addScript("classpath:com/bank/config/sql/test-data.sql")
        .build();
}

XML配置:

<jdbc:embedded-database id="dataSource">
    <jdbc:script location="classpath:schema.sql"/>
    <jdbc:script location="classpath:test-data.sql"/>
</jdbc:embedded-database>

Spring文档的相关部分。

我对考试和认证问题了解不多:-)但这里有一个有效的XML数据源配置JDBC MySQL

    <!-- App's dataSource used by jdbcTemplate,jdbc-user-service and connectController anss so on -->
<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/springappdb" />
    <property name="username" value="root" />
    <property name="password" value="yourpassword" />
</bean>

<!-- jdbcTemplate --> 
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
    <constructor-arg ref="dataSource" /> 
</bean>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM