`

SpringBoot Druid整合,SpringBoot 集成Druid

阅读更多

SpringBoot Druid整合,SpringBoot 集成Druid

 

================================

©Copyright 蕃薯耀 2018年4月3日

http://fanshuyao.iteye.com/

 

一、SpringBoot引入Druid的依赖包

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <scope>runtime</scope>
</dependency>
		
<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>druid</artifactId>
  <version>1.1.9</version>
</dependency>

 

二、设置配置文件application.properties

spring.datasource.url=jdbc:mysql://192.168.1.166:3306/study
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#spring.datasource.schema=

#数据源其他配置,需要增加Druid的配置类(不然不生效)
#配置见:com.lqy.springboot.datasource.druid.DruidConfig
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
spring.datasource.maxWait=60000
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
spring.datasource.poolPreparedStatements=true
#配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙  
spring.datasource.filters=stat,wall,log4j
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
spring.datasource.useGlobalDataSourceStat=true  
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

 

三、增加Druid自定义配置类

为什么要增加呢?

因为SpringBoot本身提供的配置只是部分的数据库连接配置,很多Druid需要的属性配置是没有的,如:

spring.datasource.initialSize

 这个属性,SpringBoot是没有的,只有Druid才有,所以需要增加相应的配置类,自动注入。

 

DruidConfig 类

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

import javax.sql.DataSource;

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 com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;

/**
 * 导入druid数据源,扩展相关的配置属性
 *
 */
@Configuration
public class DruidConfig {

	/**
	 * 配置Druid的属性,和DataSource进行绑定,前缀设置为:spring.datasource
	 * 不配置的话,很多初始化的属性是没有绑定的
	 * @return
	 */
	@Bean
	@ConfigurationProperties(prefix="spring.datasource")
	public DataSource druid() {
		return new DruidDataSource();
	}
	
	/**
	 * 配置druid监控
	 * 配置一个管理后台的servlet
	 * 访问地址:http://localhost:8080/druid/
	 * @return
	 */
	@Bean
	public ServletRegistrationBean statViewServlet() {
		ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
		Map<String, String> initParameters = new HashMap<String, String>();
		initParameters.put("loginUsername", "admin");//属性见:com.alibaba.druid.support.http.ResourceServlet
		initParameters.put("loginPassword", "123456");
		initParameters.put("allow", "");//默认允许所有
		initParameters.put("deny", "");
		bean.setInitParameters(initParameters);
		return bean;
	}
	
	/**
	 * 配置一个web监控的filter
	 * @return
	 */
	@Bean
	public FilterRegistrationBean webStatFilter() {
		FilterRegistrationBean filterBean = new FilterRegistrationBean();
		filterBean.setFilter(new WebStatFilter());
		filterBean.setUrlPatterns(Arrays.asList("/*"));
		
		Map<String, String> initParameters = new HashMap<String, String>();
		initParameters.put("exclusions", "*.js,*.css,/druid/*");//属性见:com.alibaba.druid.support.http.WebStatFilter
		filterBean.setInitParameters(initParameters);
		
		return filterBean;
	}
	
	
}

 

 四、启动项目,测试数据源连接:

import java.sql.Connection;
import java.sql.SQLException;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class DataSourceController {

	@Autowired
	private DataSource dataSource;
	
	@RequestMapping("/dataSource")
	public String dataSource() {
		try {
			System.out.println("dataSource = "+dataSource);
			Connection conn = dataSource.getConnection();
			System.out.println("conn = "+conn);
			return "success";
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return "end.";
	}
	
	
}

 

五、查看Druid的监控

浏览器打开:http://localhost:8080/druid

登录的账号密码在DruidConfig类配置有

 

(如果你觉得文章对你有帮助,欢迎捐赠,^_^,谢谢!) 


    

 

================================

©Copyright 蕃薯耀 2018年4月3日

http://fanshuyao.iteye.com/

1
1
分享到:
评论
1 楼 蕃薯耀 2018-04-03  
SpringBoot Druid整合,SpringBoot 集成Druid

=============
蕃薯耀

相关推荐

    SpringBoot(七)SpringBoot整合Druid实现数据库密码加密.pdf

    本文将详细介绍如何在Spring Boot项目中整合Druid连接池,并通过非对称加密技术加密数据库密码,从而提高系统的安全性。 #### 二、项目搭建与环境准备 ##### 2.1 新建 Maven 项目 首先,我们需要使用IDEA...

    springboot整合druid、mybatis连接gbase8s.doc

    在本文中,我们将深入探讨如何将SpringBoot与Druid数据源和MyBatis集成,以连接到Gbase8s v8.7数据库。Gbase8s是一款高性能的关系型数据库管理系统,特别适合处理大规模数据。我们将使用Spring Boot 2.1.11版本,...

    springboot+mybatis3+druid+postgresql

    在本项目中,"springboot+mybatis3+druid+postgresql"的组合是一个常见的高效、轻量级的Java Web开发架构。Spring Boot简化了Spring应用程序的创建和配置,MyBatis作为持久层框架提供了灵活的SQL映射,Druid是数据库...

    SpringBoot整合Druid数据源

    总结起来,整合SpringBoot与Druid数据源不仅简化了数据库连接池的配置,而且提供了强大的监控功能,有助于我们对数据库性能进行实时监控和调优。通过实践这个案例,开发者可以更深入地了解SpringBoot的自动配置机制...

    springboot+druid+mybatis plus整合demo

    与SpringBoot集成后,可以实现自动化配置和依赖注入,让数据库操作更加简洁。 项目中包含的文件如下: 1. `shop.sql`:这是数据库脚本文件,用于初始化数据库表结构和数据。在实际应用中,这一步通常是启动应用前...

    SpringBoot集成TDengine程序Demo

    **SpringBoot集成TDengine程序Demo**是一篇关于如何在SpringBoot应用中整合TDengine数据库的实战教程。SpringBoot以其简洁的配置和快速的开发能力深受Java开发者喜爱,而TDengine则是一款高性能、分布式、适用于...

    Springboot整合Druid与Mybatis的多数据源切换

    本教程将详细介绍如何在Spring Boot项目中整合Druid数据源池与Mybatis,实现多数据源切换的功能,并提供一个亲测可用的解决方案。 首先,让我们了解Spring Boot、Druid和Mybatis这三大组件的基础知识: **Spring ...

    springboot集成gbase8s小demo

    在本项目中,"springboot集成gbase8s小demo"是一个使用Spring Boot框架与GBase 8s数据库集成的示例应用。Spring Boot以其快速、开箱即用的特性,已经成为Java领域微服务开发的首选框架之一。GBase 8s是南大通用数据...

    SpringBoot整合Druid、Websocket

    如果你需要深入了解如何整合SpringBoot、Druid和WebSocket,可以查看该项目的源代码,包括`pom.xml`配置文件、`application.properties`或`application.yml`配置文件、以及相关的Java源代码。 总结来说,SpringBoot...

    springboot整合druid

    在SpringBoot框架中集成Druid,可以方便地管理和优化数据库连接,提升应用性能。下面将详细阐述如何进行整合,以及Druid的主要特性和优势。 首先,Druid的核心功能包括: 1. **连接池管理**:Druid提供高效的连接...

    SpringBoot+MyBatis+Druid连接池+JDBC官方驱动+ClickHouse

    整合SpringBoot、MyBatis和Druid来操作ClickHouse,主要涉及以下步骤: 1. 添加依赖:在SpringBoot项目的pom.xml文件中,添加ClickHouse的JDBC驱动、MyBatis、Druid和SpringBoot的相应依赖。 2. 配置Druid:在...

    springboot集成impala(包含yml、impala配置类、pom.xml、impala jar)

    1. **SpringBoot集成**: SpringBoot是基于Spring框架的一个轻量级开发工具,它简化了创建独立、生产级别的基于Spring的应用程序。集成Impala意味着我们可以直接在SpringBoot应用中执行SQL查询,访问存储在Impala的...

    spring-boot+druid整合

    本文将详细介绍如何将Spring Boot与Druid进行整合,以及在Spring Boot 2.0环境下与MyBatis集成,帮助学习者深入理解这一技术栈。 首先,让我们从Spring Boot 2.0与Druid的整合开始。在Spring Boot项目中,我们通常...

    maven 整合 springboot mybatis druid

    SpringBoot集成了大量的常用功能,如嵌入式Tomcat服务器、自动配置、健康检查等,使得开发者可以快速创建生产级别的Java应用。在整合`Maven`时,我们需要在`pom.xml`中添加SpringBoot的起步依赖,并根据需求引入其他...

    springboot和JFinal的集成

    通过分析和学习这些代码,可以更好地理解和掌握如何在实际项目中整合这两个框架。 总之,Spring Boot和JFinal的集成能够提供一个既拥有Spring Boot自动化配置和内置服务优势,又具备JFinal简单高效数据库操作特性的...

    springboot整合neo4j完整demo

    springboot集成neo4j图数据库,使用java语言连接数据库mysql和neo4j,实现将mysql数据插入neo4j中。 实现的功能有对neo4j数据进行统计分析、关系遍历增删改查等 。并且使用d3对查询结果数据进行页面展示!

    spring-boot集成mybtis+druid实现hive/mysql多数据源切换

    在实际应用中,`springboot-bigdata`这个项目可能包含了以下文件结构和内容: 1. `pom.xml`:项目的Maven配置文件,包含Spring Boot、MyBatis、Druid及它们的依赖。 2. `application.properties`/`application.yml`...

    springboot+mybatis+druid.zip

    整合SpringBoot与MyBatis主要涉及以下步骤: 1. 添加MyBatis和MyBatis-SpringBoot-Starter依赖。 2. 配置MyBatis的主配置文件(mybatis-config.xml),并定义Mapper扫描路径。 3. 创建Mapper接口和对应的Mapper XML...

    SpringBoot+Mybatis+Druid+PageHelper实现多数据源并分页方法

    总结来说,SpringBoot整合Mybatis、Druid和PageHelper可以创建一个高性能、易维护的后端系统。通过Druid,我们能够监控数据库性能,优化连接池配置;使用PageHelper可以简化分页查询的实现;而多数据源的支持则增强...

Global site tag (gtag.js) - Google Analytics