012 数据访问---数据源的配置

一 .概述

  在springboot之中,我们如果想要引入数据访问的操作,这个过程非常的简单.

  首先,我们需要引入对应的启动器.

  如下:

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

我们配置一下数据源:

  我们找到我们的application.yml文件,进行如下的配置:

  datasource:
    url: jdbc:mysql://localhost:3306/mp
    username: root
    password: trek
    driver-class-name: com.mysql.jdbc.Driver

现在我们进行一下测试,看我们的数据源是否已经配置成功.

@RunWith(SpringRunner.class)
@SpringBootTest(classes=SpringbootApplicationStarter.class)
@Slf4j
public class JDBCTest {

    @Resource
    private DataSource datasource;

    @Test
    public void testGetConnection() throws Exception {
        log.info(datasource.getClass().toString());
        log.info(datasource.getConnection().toString());
    }

}

我们看下日志的输出:

2018-08-18 20:25:02.243  INFO 5204 --- [           main] com.trek.test.JDBCTest                   : class org.apache.tomcat.jdbc.pool.DataSource
2018-08-18 20:25:03.080  INFO 5204 --- [           main] com.trek.test.JDBCTest                   : ProxyConnection[PooledConnection[[email protected]]]

我们发现,springboot默认使用的就是Tomcat之中的数据源.



二 . 数据源配置的分析

  按照之前我们的做法,springboot既然已经提供了默认的配置方式,那么一定会有一个配置类的存在.

我们找到对应的配置类,发现了如下的代码:  

    @Bean
    @ConditionalOnMissingBean
    public DataSourceInitializer dataSourceInitializer(DataSourceProperties properties,
            ApplicationContext applicationContext) {
        return new DataSourceInitializer(properties, applicationContext);
    }

我们看一下DataSourceProperties 到底是什么?

当我们看到配置的注解就明白了,在springboot启动的时候,就会对这个配置类进行配置,这样数据源的信息就被配置好了.

那么,我们现在需要找的就是Tomcat的数据源是在哪里被加载的.

在上面的代码之中,我们发现了Tomcat的数据源是怎么被配置成功的了.



四 .自定义数据源  

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

        @Bean
        public DataSource dataSource(DataSourceProperties properties) {
            return properties.initializeDataSourceBuilder().build();
        }

    }

我们在代码之中,在最下面发现啊了一个通用的配置信息. 我们就可以使用这种方式进行Druid数据源的配置了.在下一节我们就利用这个特性进行数据源的配置.

原文地址:https://www.cnblogs.com/trekxu/p/9498586.html

时间: 2024-10-08 16:28:04

012 数据访问---数据源的配置的相关文章

SpringBoot_数据访问-整合Druid&amp;配置数据源监控

第一步,在pom.xml文件中导入druid的文件信息 <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.8</version> </dependency&g

KB: Operations Manager为什么刚装好就显示数据访问服务SPN未注册

对于我这种强迫症患者,服务账号能用域账号就不用本地的.微软最佳实践也是这么建议的,于是我在安装SCOM的时候就是按照下面这样来规划账户的. 用户名 用途 权限级别 类型 隶属于 acertwp\svcomda OM数据访问服务和配置服务帐户 低权域用户 用户 SQL本地管理员SCOM本地管理员 acertwp\svcomw OM数据仓库写入账户 低权域用户 用户 SQL本地管理员SCOM本地管理员 acertwp\svcomr OM报表查询账户 低权域用户 用户 SQL本地管理员SCOM本地管理

数据访问池+服务插件配置+数据库配置

01.数据访问对象池 TDBAPool a.分配访问对象: DBAPool.AllocateObject;  //每次都新建一个 b.返还访问对象: DBAPool.ReleaseObject(TDBAccess); //释放并注销掉 c.分配对象数量: DBAPool.AllocatedObjects; 02.服务端数据库配置信息的处理:TDBConfig a.取现有已注册数据库信息: DBConfig.FetchDatabaseList(var CDS:TClientDataSet) b.注

[ASP.NET Core 3框架揭秘] 配置[5]:配置数据与数据源的实时同步

在<配置模型总体设计>介绍配置模型核心对象的时候,我们刻意回避了与配置同步相关的API,现在我们利用一个独立文章来专门讨论这个话题.配置的同步涉及到两个方面:第一,对原始的配置源实施监控并在其发生变化之后重新加载配置:第二,配置重新加载之后及时通知应用程序进而使应用能够及时使用最新的配置.要了解配置同步机制的实现原理,我们先得了解一下配置数据的流向. 一.配置数据流 通过前面的介绍,我们已经对配置模型有了充分的了解,处于核心地位的 IConfigurationBuilder对象借助注册的ICo

Spring数据访问之JdbcTemplate

Spring数据访问之JdbcTemplate 使用JdbcTemplate的基本操作步骤 1.引jar包 项目的基本架构 这里重点看实现类的内容 1 package cn.hmy.dao.impl; 2 3 4 import java.util.List; 5 6 import org.springframework.jdbc.core.support.JdbcDaoSupport; 7 8 import cn.hmy.beans.Emp; 9 import cn.hmy.dao.IEmpDa

微软-创建数据访问层

简介 https://msdn.microsoft.com/zh-cn/cc964016 作为web 开发人员,我们的工作总是在和数据打交道.我们创建数据库来存储数据,编写代码来检索并修改数据,并创建Web 页面来收集和汇总数据.这是探讨在ASP.NET 2.0 中实现这些常用类型的技巧的系列教程中的首篇教程.我们从创建一个 软件架构 开始,包括使用Typed DataSet 的数据访问层(DAL) .实现自定义业务规则的业务逻辑层(BLL) 和共享同一页面布局的ASP.NET 页面组成的表示层

ADO.NET编程之美----数据访问方式(面向连接与面向无连接)

最近,在学习ADO.NET时,其中提到了数据访问方式:面向连接与面向无连接.于是,百度了一下,发现并没有很好的资料,然而,在学校图书馆中发现一本好书(<ASP.NET MVC5 网站开发之美>,当然,我不是做广告的,只因它确实还可以),里面关于二者之间的区别及原理讲得很清楚,下面我们就进入主题.今天心情不错.... 我们都知道ADO.NET提供了对数据库或外部数据源的数据访问接口,它本身实现了面向连接与面向无连接的数据访问方式.面向连接是以数据库连接为基础的,在打开数据库连接后,将数据访问指令

在 ASP.NET 中创建数据访问和业务逻辑层(转)

.NET Framework 4 当在 ASP.NET 中处理数据时,可从使用通用软件模式中受益.其中一种模式是将数据访问代码与控制数据访问或提供其他业务规则的业务逻辑代码分开.在此模式中,这两个层均与表示层分离.表示层由网站用户有权查看或更改数据的页面组成. ASP.NET 可通过多种方式提供数据访问.业务逻辑和表示形式之间的分离.例如,数据源模型(包括 LinqDataSource 和 ObjectDataSource 等服务器控件)可将表示层与数据访问代码和业务逻辑分离. 另一种模式是将数

Spring数据访问层Dao案例

本文描述的是通过spring框架实现数据持久化操作,具体内容如下: 1,POJO类定义: 1 import java.io.Serializable; 2 import java.util.Date; 3 4 public class User implements Serializable{ 5 private int userId; 6 7 private String userName; 8 9 private String password; 10 11 private int cred