14-Springboot默认数据源配置HikariDataSource

前一篇:13-Springboot中HttpEncodingAutoConfiguration自动配置详解https://blog.csdn.net/fsjwin/article/details/109740170

数据源的配置,首先说明,boot已经集成了数据源,我们可以使用其知道的数据源,但是谁会用他自带的呢?哈哈,可以原理还是很重要的,需要好好了解下,之后呢,想用什么数据源就对接什么数据源就可以了。哈哈哈

1. 使用数据源的前提,加入依赖

starter是不是很熟悉,一个start解决所有问题
 <dependency>
 	 <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-jdbc</artifactId>
     <version>2.3.0.RELEASE</version>
  </dependency>

对接的是mysql数据库,引入mysql的启动包
  <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.9</version>
  </dependency>

深入的了解下这个spring-boot-starter-jdbc中引入了那些依赖

<dependencies>
	基础依赖
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
      <version>2.3.0.RELEASE</version>
      <scope>compile</scope>
    </dependency>
    
    Hikari数据源和durid、dpcp、c3p0一样的功能
    <dependency>
      <groupId>com.zaxxer</groupId>
      <artifactId>HikariCP</artifactId>
      <scope>compile</scope>
    </dependency>
    
    spring-jdbc的依赖
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <scope>compile</scope>
    </dependency>
  </dependencies>

2. 数据源的自动配置类看一眼DataSourceAutoConfiguration

想象一下肯定有这么一个类叫:DataSourceAutoConfiguration
它里面会有个properies类封装相关yml参数,
我们要做的就是在yml中写一些他规定好的配置就可以了。

  1. 池化的数据源
	@Configuration(proxyBeanMethods = false)
	@Conditional(PooledDataSourceCondition.class)
	@ConditionalOnMissingBean({ DataSource.class, XADataSource.class })
	@Import({ DataSourceConfiguration.Hikari.class, DataSourceConfiguration.Tomcat.class,
			DataSourceConfiguration.Dbcp2.class, DataSourceConfiguration.Generic.class,
			DataSourceJmxConfiguration.class })
	protected static class PooledDataSourceConfiguration {

	}

在这里插入图片描述
2. 类上的注解:

@EnableConfigurationProperties(DataSourceProperties.class)
  1. DataSourceProperties中规定配置规则,和封装配置属性
@ConfigurationProperties(prefix = "spring.datasource")
public class DataSourceProperties implements BeanClassLoaderAware, InitializingBean {

	private ClassLoader classLoader;

	/**
	 * Name of the datasource. Default to "testdb" when using an embedded database.
	 */
	private String name;

以:spring.datasource开头的配置既可以,配置我们自己的数据源
在这里插入图片描述
3. yml配置:


spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:yuhl?useSSL=false
    driver-class-name: com.mysql.jdbc.Driver
    username: root
    password: root
    #type就是实现了DataSource数据源,可以换成其他的哦!前提,需要引入其他数据源的依赖先。
    type: com.zaxxer.hikari.HikariDataSource

3. 使用的时候注入数据源接口

@RestController
public class HelloController {

    @Autowired
    DataSource dataSource;

    @RequestMapping("/hello")
    public String hello() {
        System.out.println("dataSource" + dataSource);
        return "hello";
    }
}

4. 测试

type: com.zaxxer.hikari.HikariDataSource:

在这里插入图片描述

如果我们把type换了,会怎样嗯?肯定就换成别的数据源了。
下面会介绍使用druid数据源。

5. 总结

使用数据源时:
1. 引入依赖
2. 配置yml即可使用,
3. 中间boot做了什么事:autoconfiguration和properties做到注入。
4. 使用时引用即可使用

下一篇:15-Springboot其他数据源配置之Druid https://blog.csdn.net/fsjwin/article/details/109742300

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值