美文网首页Java学习笔记
微服务架构项目实战SpringBoot中的 Druid整合 与集

微服务架构项目实战SpringBoot中的 Druid整合 与集

作者: AI乔治 | 来源:发表于2018-04-19 21:37 被阅读55次


一、SpringBoot引入Druid的依赖包

Xml代码

mysql

mysql-connector-java

runtime

com.alibaba

druid

1.1.9

二、设置配置文件application.properties

Java代码

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需要的属性配置是没有的,如:

Java代码

1. spring.datasource.initialSize

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

DruidConfig 类

Java代码

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 initParameters = new HashMap();

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 initParameters = new HashMap();

initParameters.put("exclusions", "*.js,*.css,/druid/*");//属性见:com.alibaba.druid.support.http.WebStatFilter

filterBean.setInitParameters(initParameters);

return filterBean;

}

}

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

Java代码

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类配置有

在此我向大家推荐一个架构学习交流群。交流学习群号:575745314 里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

相关文章

网友评论

    本文标题:微服务架构项目实战SpringBoot中的 Druid整合 与集

    本文链接:https://www.haomeiwen.com/subject/ombwkftx.html