栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

spring boot 数据库访问

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spring boot 数据库访问

一、基本使用

导入jdbc启动器:

        
            org.springframework.boot
            spring-boot-starter-jdbc
        

可以看下,导入后自动导入了那些包:

可以看到,没有导入驱动,主要是因为不清楚接下来需要操作说明数据库,所有没有导入。

        
            mysql
            mysql-connector-java
        

spring boot会自动导入 版本为8的驱动,使用者需要根据自己的实际情况对版本进行维护。

修改版本的2种方式:

  • 直接引入版本,使用maven的就近原则
  • 重新声明,使用maven的属性就近原则 
二、自动配置原理
  • DataSourceAutoConfiguration 数据源的自动配置
    • 修改数据源相关配置,配置文件中修改 spring.datasource 开头的即可
    • 数据库连接池,当没有配置的时候会自动配置
    • 底层配置好的数据源是 HikariDataSource 连接池
  • DataSourceTransactionManagerAutoConfiguration 事务自动配置
  • JdbcTemplateAutoConfiguration 数据库操作配置
  • JndiDataSourceAutoConfiguration JNDI自动配置
  • XADataSourceAutoConfiguration  分布式事务相关配置 
三、使用Druid数据源

在spring boot中使用第三方功能的时候,无非以下两种方式

  • 自定义方式,引入jar包和相关配置(在spring boot中可以使用配置类)
  • 寻找改功能的spring boot 启动器(starter) jar包

引入druid的依赖:

 
            com.alibaba
            druid
            1.1.17
        

配置数据源和监控,在数据源中set的相关属性,在配置文件中一样可以处理:

package com.example.demo.conf;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;
import java.util.Arrays;

@Configuration
public class MyDataSourceConfig {

    
    @ConfigurationProperties("spring.datasource")//跟spring.datasource 中的属性绑定
    @Bean
    public DataSource dataSource() throws Exception{
        //很多属性
        DruidDataSource druidDataSource = new DruidDataSource();
        //加入监控功能,防火墙
        druidDataSource.setFilters("stat,wall");
        return druidDataSource;
    }

    
    @Bean
    public ServletRegistrationBean statViewServlet(){
        StatViewServlet statViewServlet = new StatViewServlet();
        ServletRegistrationBean statViewServletServletRegistrationBean = new ServletRegistrationBean<>(statViewServlet, "/druid/*");
        statViewServletServletRegistrationBean.addInitParameter("loginUsername", "admin");
        statViewServletServletRegistrationBean.addInitParameter("loginPassword", "admin");
        return statViewServletServletRegistrationBean;
    }

    @Bean
    public FilterRegistrationBean webStatFilter(){
        WebStatFilter webStatFilter = new WebStatFilter();
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(webStatFilter);
        filterRegistrationBean.setUrlPatterns(Arrays.asList("/*"));
        filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,*.jsp,/druid/*,/download/*");
        return filterRegistrationBean;
    }

}

访问项目的druid监控主页:

四、使用druid启动器 - starter
        
            com.alibaba
            druid-spring-boot-starter
            1.1.17
        

自动配置:

自动配置类中导入了如下相关类:

  • DruidSpringAopConfiguration.class:监控spring 组件的
  • DruidStatViewServletConfiguration.class:开启监控页
  • DruidWebStatFilterConfiguration.class:配置了web url 监控
  • DruidFilterConfiguration.class:容器中放入相关的组件

配置文件:

 引入启动器之后,就可以使用配置文件进行配置,可以查看官方文件进行配置

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/349117.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号