springboot配置单数据源

  1. 选择使用H2, jdbc-api

2.在使用SpringBoot构建项目时,我们通常有一些预先数据的加载。那么SpringBoot提供了一个简单的方式来实现CommandLineRunner。CommandLineRunner是一个接口,我们需要时,只需实现该接口就行。如果存在多个加载的数据,我们也可以使用@Order注解来排序。

启动类如下:

package lgp.spring.data.datasourcedemo;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;

@SpringBootApplication
@Slf4j
public class DatasourceDemoApplication implements CommandLineRunner{

    @Autowired
    private DataSource dataSource;

    public static void main(String[] args) {
        SpringApplication.run(DatasourceDemoApplication.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        showConnection();
    }

    private void showConnection() throws SQLException {
        log.info("dataSource:[{}]",dataSource.toString());
        Connection connection = dataSource.getConnection();
        log.info("connection:[{}]",connection.toString());
        connection.close();

    }
}

使用h2内存数据库, 项目启动后打印结果如下:

2019-06-23 21:50:04.797  INFO 15416 --- [           main] l.s.d.d.DatasourceDemoApplication        : dataSource:[HikariDataSource (null)]

2019-06-23 21:50:05.100  INFO 15416 --- [           main] l.s.d.d.DatasourceDemoApplication        : connection:[HikariProxyConnection@1715602761 wrapping conn0: url=jdbc:h2:mem:testdb user=SA]

actuator只暴露了health和info端点,访问其他端点需要额外配置.
在application.properties 中配置:

management.endpoints.web.exposure.include=*

访问http://localhost:8080/actuator/beans
可以查看所有的bean, 可以看到springboot对数据源dataSource, 操作相关jdbcTemplate,事务相关 transactionTemplate, platformTransaction 进行了自动配置.

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容