【问题标题】:How do you configure a DataSource in Spring?如何在 Spring 中配置 DataSource?
【发布时间】:2015-05-25 14:21:16
【问题描述】:

我正在学习 Spring Core 认证,我对这个问题的正确答案有些怀疑:

如何在 Spring 中配置 DataSource?哪个豆子很有用 开发?

我认为我在 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。这个断言是真的还是我错过了什么?

声明的 配置标签究竟代表什么?我很清楚它的作用,但究竟代表什么?是特殊的 bean 声明还是什么?

Tnx

【问题讨论】:

  • "哪个 bean 对开发非常有用?"他们都是。

标签: java spring jdbc spring-jdbc


【解决方案1】:

我相信它必须是为 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 docs 的相关部分。

【讨论】:

    【解决方案2】:

    我对考试和认证问题了解不多 :-) 但这是一个有效的 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>
    

    【讨论】:

    • DriverManagerDataSource 不提供池化,仅用于测试目的。直接来自文档。
    猜你喜欢
    • 2015-01-20
    • 2021-02-16
    • 2011-03-13
    • 2015-05-03
    • 2019-11-01
    • 2017-03-12
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多