繁体   English   中英

在不使用xml的春季启动中连接到mysql数据源

[英]connecting to mysql datasource in spring boot without xml

我使用了《 Spring In Action 4》一书中的一些示例。

@Bean
public DataSource dataSource() {
    return new EmbeddedDatabaseBuilder()
            .setType(EmbeddedDatabaseType.H2)
            .addScript("thetenticle.sql")
            .build();
}

@Bean
public JdbcOperations jdbcTemplate(DataSource dataSource) {
    return new JdbcTemplate(dataSource);
}

该示例创建一个可用于执行db操作的数据源。 该示例使用嵌入式h2数据库。 这对我没有用,因为我想远程连接到mysql数据库。 我希望我可以连接具有数据库详细信息的DataSource对象。 有没有办法我可以做到这一点。 我对休眠或xml配置没有任何兴趣。 即时通讯使用弹簧靴。

我花了最后18个小时来尝试找到一个简单的示例,该示例创建mysql数据源而不是嵌入式h2并将查询发送到数据库。 我还没有找到一个例子。 一些站点建议将连接详细信息添加到application.properties ....但是如何从中创建数据源,从而可以对它进行sql查询?

抱歉,我的无知,但我只需要简单的解释

有关快速历史记录的课程,请参见下文。

进行application.properties设置,如您在网上看到的许多示例中所述:

spring.datasource.url=jdbc:mysql://yourhost/yourdb
spring.datasource.username=youruser
spring.datasource.password=yourpass
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

假设您在类路径上有正确的jar,Spring将为您创建一个DataSource 如果您使用Maven或Gradle构建应用程序,则以下清单应有助于您到达那里。

Maven的:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
    <version>1.3.5.RELEASE</version>
</dependency>

摇篮:

compile group: 'org.springframework.boot', name: 'spring-boot-starter-jdbc', version: '1.3.5.RELEASE'

最后,让AutoConfiguration构建您的JdbcOperations对象(或者如果您愿意,也可以仅构建DataSource )。 您无需执行任何操作即可创建它们,只需@Autowired它们插入到Spring托管bean中即可。

@Component
public class MyBean {
    @Autowired
    private JdbcOperations jdbc;

    public void doJdbcStuff() {
        // use jdbc
    }
}

历史课

早期,Spring的目标是减少样板代码(只是他们众多目标之一)。 他们通过使用API​​模式进行许多API声明,使用模板模式并使配置用Java编写的应用程序变得容易,从而以多种不同方式完成了此任务。 但是在此过程中,config在许多大型应用程序中成为怪物。 他们很快意识到,他们已经将创建应用程序的大部分复杂性从应用程序的实际业务部分转移到了配置上。

这就是SpringBoot出现的目的,目的是减少配置样板 有很多种方法可以实现,物料清单,自动配置和application.properties配置是主要方法。


听起来好像您正在经历Craig Walls撰写的Spring in Action,第4版 如果您喜欢的话,并且打算继续学习SpringBoot,他还可以写作SpringBoot in Action ,该书于2015年底发布。该书快速阅读264页,对我的历史课程有更深入的了解。

暂无
暂无

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

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