【Springboot总结】22 数据访问

本文详细解析了Spring Boot框架中JDBC的自动配置过程,包括项目创建、配置文件设置、数据源自动配置原理及自定义数据源的方法。介绍了如何通过spring.datasource.type配置自定义数据源类型,以及DataSourceInitializer在项目启动时运行schema和data脚本的功能。

 

一、整合基本的JDBC 

 

1. 创建新的项目

   选择 Mysql 、JDBC、Web

 

 

2. application.yml文件中配置连接信息

 

3. 测试连接信息

效果:默认是用org.apache.tomcat.jdbc.pool.DataSource作为数据源;数据源的相关配置都在DataSourceProperties里面;

 

二、数据源自动配置的原理

自动配置原理:org.springframework.boot.autoconfigure.jdbc:

1. 参考DataSourceConfiguration,根据配置创建数据源,默认使用Tomcat JDBC连接池;可以使用spring.datasource.type指定自定义的数据源类型;

2. SpringBoot默认可以支持;

org.apache.tomcat.jdbc.pool.DataSource、HikariDataSource、BasicDataSource、

3. 自定义数据源

/**
 * Generic DataSource configuration.
 */
@ConditionalOnMissingBean(DataSource.class)
@ConditionalOnProperty(name = "spring.datasource.type")
static class Generic {

   @Bean
   public DataSource dataSource(DataSourceProperties properties) {
       //使用DataSourceBuilder创建数据源,利用反射创建相应type的数据源,并且绑定相关属性
      return properties.initializeDataSourceBuilder().build();
   }

}

【提示】根据我们的spring.datasource.type的配置,springboot会自动的使用DataSourceBuilder创建数据源,利用反射创建相应type的数据源,并且绑定相关属性

4. DataSourceInitializer:ApplicationListener;

         作用:

​               runSchemaScripts();运行建表语句;

              runDataScripts();运行插入数据的sql语句;

        默认加载 类路径下 schema-*.sql、data-*.sql的文件。schema-*.sql时间创建表的文件,另外一个是插入数据的文件!

        自定义:在application.yml文件中配置

        

         【提示】schema的配置在下次启动之后还会重新创建表。也就是说schema的配置在项目启动之初配上,之后就不要配置                           了,否则项目运行中插入的数据下次启动后创建新表,原先的数据就没有了!

 

5. 操作数据库

          自动配置了JdbcTemplate操作数据库

### 关于 Spring Boot 的总结性资料 #### 什么是 Spring Boot? Spring Boot 是一种基于 Java 的框架,旨在简化新 Spring 应用程序的初始搭建以及开发过程。它通过提供默认配置和依赖管理来减少开发者的工作量[^3]。 #### 如何测试 Spring Boot 应用程序? 测试是软件开发生命周期中的重要组成部分,对于确保应用程序的质量至关重要。在 Spring Boot 中,可以利用多种工具和技术实现高效的单元测试、集成测试和其他类型的测试。例如,JUnit 和 Mockito 常用于编写单元测试,而 Spring TestContext Framework 则支持更复杂的场景测试[^1]。 #### 快速入门指南 为了快速上手 Spring Boot 开发,可以从官方文档或其他教程资源入手。通常情况下,创建一个新的 Spring Boot 项目可以通过访问 [start.spring.io](https://start.spring.io/) 并生成所需的 Maven 或 Gradle 构建文件完成。之后,按照标准流程导入到 IDE 中即可开始编码工作[^2]。 #### 主要功能概述 - **自动化配置**:Spring Boot 自动化配置机制会根据类路径上的内容动态调整应用行为。 - **嵌入式服务器**:内置 Tomcat, Jetty 或 Undertow 等 Web 容器使得部署更加便捷。 - **生产就绪特性**:包括健康检查、指标收集等功能有助于监控实际环境下的表现情况。 - **外部化配置**:允许从不同来源加载属性值(如 YAML 文件),从而方便跨多个环境中重用相同的代码基线。 #### 示例代码片段展示 main 方法结构 以下是典型的 Spring Boot 启动类定义方式: ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Example { public static void main(String[] args) { SpringApplication.run(Example.class, args); } } ``` #### 最佳实践建议 1. 遵循单一职责原则设计服务层逻辑; 2. 尽可能使用接口代替具体实现类以便后期扩展维护; 3. 对敏感数据采取加密存储措施保护信息安全; 4. 科学规划微服务体系架构避免过度拆分造成性能瓶颈等问题出现。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值