Spring全家桶单数据源配置,如何实现高效整合?

摘要:前言 spring数据源的配置网络上有很多例子,这里我也来介绍一下单数据源配置的例子,基于SpringBoot的方式和原生的Spring的方式。 一、生成项目骨架(SpringBoot),运行一个简单的程序 访问:https:start
前言 spring数据源的配置网络上有很多例子,这里我也来介绍一下单数据源配置的例子,基于SpringBoot的方式和原生的Spring的方式。 一、生成项目骨架(SpringBoot),运行一个简单的程序 访问:https://start.spring.io/ ,选择必要的依赖 下面我们先看下Application类的代码: @SpringBootApplication @Slf4j public class SpringDatasourceApplication implements CommandLineRunner { @Autowired private DataSource dataSource; @Autowired private JdbcTemplate jdbcTemplate; public static void main(String[] args) { SpringApplication.run(SpringDatasourceApplication.class, args); } @Override public void run(String... args) throws Exception { showConnection(); showData(); } private void showConnection() throws SQLException { log.info("数据源:"+dataSource.toString()); Connection conn = dataSource.getConnection(); log.info("连接:"+conn.toString()); conn.close(); } private void showData() { jdbcTemplate.queryForList("SELECT * FROM user") .forEach(row -> log.info("记录:"+row.toString())); } } application.properties文件的配置项,我们可以看到我们使用的h2数据库 management.endpoints.web.exposure.include=* spring.output.ansi.enabled=ALWAYS spring.datasource.url=jdbc:h2:mem:demodb spring.datasource.username=sa spring.datasource.password= 在资源文件目录,写入两个文件,一个是data.sql、一个是schema.sql schema.sql内容是: CREATE TABLE user (ID INT IDENTITY, name VARCHAR(64),age INT); data.sql内容是: INSERT INTO user (ID,name,age) VALUES (1, '张三',18); INSERT INTO user (ID, name,age) VALUES (2, '李四',19); 运行代码,结果如下: 其实我们并没有去对DataSource进行bean配置,只是指定了数据库的类型,加载了建表语句和初始化数据语句,可以看到连接池是Hikari,这也是springboot默认的连接池。 由于是使用的内置数据库,我们可以在代码中 这也是因为springboot给我们自动装配了我们所需要的信息,由于我们引入了actuator,我们可以通过http://localhost:8080/actuator/beans 看到springboot帮我们装载了很多的bean,有些可能是我们根本用不到的。下面我们讲一下原生Spring方式怎么实现配置数据源。
阅读全文