如何在 Spring 中配置数据源?

3 java spring jdbc spring-jdbc

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

\n\n
\n

如何在 Spring 中配置数据源?哪种 bean 对于开发非常有用?

\n
\n\n

我认为我可以这样做来在 Spring XML 配置文件中配置DataSource :

\n\n
<bean id=\xe2\x80\x9cdataSource\xe2\x80\x9d class=\xe2\x80\x9corg.apache.commons.dbcp.BasicDataSource\xe2\x80\x9d>\n    <property name=\xe2\x80\x9curl\xe2\x80\x9d value=\xe2\x80\x9c${dataSource.url}\xe2\x80\x9d />\n    <property name=\xe2\x80\x9cusername\xe2\x80\x9d value=\xe2\x80\x9c${dataSource.username}\xe2\x80\x9d />\n    <property name=\xe2\x80\x9cpassword\xe2\x80\x9d value=\xe2\x80\x9c${dataSource.password}\xe2\x80\x9d />\n</bean>\n\n<jdbc:initialize-database data-source=\xe2\x80\x9cdataSource\xe2\x80\x9d>\n    <jdbc:script location=\xe2\x80\x9cclasspath:schema.sql\xe2\x80\x9d />\n    <jdbc:script location=\xe2\x80\x9cclasspath:test-data.sql\xe2\x80\x9d />\n</jdbc:initialize-database>\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

到底代表什么配置标签?我很清楚它的作用,但到底代表什么?这是一个特殊的 bean 声明还是什么?

\n\n

总氮

\n

lub*_*nac 5

我相信它必须有助于在内存数据库中创建用于开发目的:

@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();
}
Run Code Online (Sandbox Code Playgroud)

XML 配置:

<jdbc:embedded-database id="dataSource">
    <jdbc:script location="classpath:schema.sql"/>
    <jdbc:script location="classpath:test-data.sql"/>
</jdbc:embedded-database>
Run Code Online (Sandbox Code Playgroud)

Spring 文档的相关部分。