发布网友 发布时间:2024-09-30 09:27
共1个回答
热心网友 时间:2024-10-18 20:02
前言??DruidSpringBootStarter用于帮助你在SpringBoot项目中轻松集成Druid数据库连接池和监控。本文将结合SpringBoot集成Druid,进行数据源监控。
初识Druid??Druid是阿里开源的一个JDBC应用组件,其包括三部分:DruidDriver代理Driver,能够提供基于Filter-Chain模式的插件体系;DruidDataSource高效可管理的数据库连接池;SQLParserSQL语法分析;Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。
下载Druid??Druid是一个开源项目,源码托管在github上,源代码仓库地址是https://github.com/alibaba/druid。同时每次Druid发布正式版本和快照的时候,都会把源码打包,你可以从上面的下载地址中找到相关版本的源码。
DruidDataSource支持数据库??理论上说,支持所有有jdbc驱动的数据库。实际测试过的有
数据库支持状态mysql支持,大规模使用oracle支持,大规模使用sqlserver支持postgres支持db2支持h2支持derby支持sqlite支持sybase支持Druid自动识别DriverClass??Druid是根据url前缀来识别DriverClass的,这样使得配置更方便简洁。
前缀DriverCLass描述信息jdbc:odpscom.aliyun.odps.jdbc.OdpsDriverjdbc:derbyorg.apache.derby.jdbc.EmbeddedDriverjdbc:mysqlcom.mysql.jdbc.Driverjdbc:oracleoracle.jdbc.driver.OracleDriverjdbc:microsoftcom.microsoft.jdbc.sqlserver.SQLServerDriverjdbc:sybase:Tdscom.sybase.jdbc2.jdbc.SybDriverjdbc:jtdsnet.sourceforge.jtds.jdbc.Driverjdbc:postgresqlorg.postgresql.Driverjdbc:fakecom.alibaba.druid.mock.MockDriverjdbc:mockcom.alibaba.druid.mock.MockDriverjdbc:hsqldborg.hsqldb.jdbcDriverjdbc:db2com.ibm.db2.jdbc.app.DB2DriverDB2的JDBCDriver十分混乱,这个匹配不一定对jdbc:sqliteorg.sqlite.JDBCjdbc:ingrescom.ingres.jdbc.IngresDriverjdbc:h2org.h2.Driverjdbc:mckoicom.mckoi.JDBCDriverjdbc:cloudscapecom.cloudscape.core.JDBCDriverjdbc:informix-sqlicom.informix.jdbc.IfxDriverjdbc:timestencom.timesten.jdbc.TimesTenDriverjdbc:as400com.ibm.as400.access.AS400JDBCDriverjdbc:sapdbcom.sap.dbtech.jdbc.DriverSapDBjdbc:JSQLConnectcom.jnetdirect.jsql.JSQLDriverjdbc:JTurbocom.newatlanta.jturbo.driver.Driverjdbc:firebirdsqlorg.firebirdsql.jdbc.FBDriverjdbc:interbaseinterbase.interclient.Driverjdbc:pointbasecom.pointbase.jdbc.jdbcUniversalDriverjdbc:edbcca.edbc.jdbc.EdbcDriverjdbc:mimer:multi1com.mimer.jdbc.Driver快速开始加入依赖??Druid0.1.18之后版本都发布到maven*仓库中,所以你只需要在项目的pom.xml中加上dependency就可以了。
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><!--mybatis-spring-boot-starter--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.1</version></dependency><!--druid--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.11</version></dependency>??主要使用到的依赖是druid这个依赖,其他的是MySQL和MyBatis的依赖。方便连接数据库使用。
配置DruidMoniterConfig??配置一个Druid监控管理后台,主要是为了在WEB端可以查看监控管理信息。主要的配置信息有用户名、用户名密码、允许访问的权限路径、黑名单的IP等信息。然后需要配置一个web监控的filter,过滤静态文件
/***@ClassNameDruidMoniterConfig*@Description:DruidMoniterConfig*@AuthorJavaZhan@公众号:Java全栈架构师*@Date2020/6/13*@VersionV1.0**/@ConfigurationpublicclassDruidMoniterConfig{@BeanpublicServletRegistrationBeanstatViewServlet(){ServletRegistrationBeanbean=newServletRegistrationBean(newStatViewServlet(),"/druid/*");Map<String,String>initParams=newHashMap<>();initParams.put("loginUsername","admin");initParams.put("loginPassword","admin");initParams.put("allow","");initParams.put("deny","192.168.127.98");bean.setInitParameters(initParams);returnbean;}@BeanpublicFilterRegistrationBeanwebStatFilter(){FilterRegistrationBeanbean=newFilterRegistrationBean();bean.setFilter(newWebStatFilter());Map<String,String>initParams=newHashMap<>();initParams.put("exclusions","*.js,*.css,/druid/*");bean.setInitParameters(initParams);bean.setUrlPatterns(Arrays.asList("/*"));returnbean;}}基础配置信息??配置文件主要包含数据源的URL、数据库用户名、数据库密码、驱动类等数据源相关配置信息。
server.port=8888#mysqlspring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNullspring.datasource.username=testspring.datasource.password=123456spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.type=com.alibaba.druid.pool.DruidDataSourcemybatis.mapper-locations=classpath*:mapper/**/*.xml启动类/***@ClassNameDemoMyBatisApplication*@Description:DemoMyBatisApplication*@AuthorJavaZhan@公众号:Java全栈架构师*@Date2020/6/13*@VersionV1.0**/@SpringBootApplication@MapperScan("com.example.demo.mapper")publicclassDemoMyBatisApplication{publicstaticvoidmain(String[]args){SpringApplication.run(DemoMyBatisApplication.class,args);}}监控页面??启动项目之后,在浏览器中输入http://127.0.0.1:8888/druid/,自动跳转到http://127.0.0.1:8888/druid/login.html页面,需要输入用户名和密码信息
输入用户名和密码后,进入监控页面,页面信息如下:
主要包含:数据源、SQL监控、SQL防火墙、Web应用、URI监控、session监控、Spring监控、JSONAPI等信息。好了SpringBoot集成Druid数据监控就已经完成了。
结语??SpringBoot集成Druid数据监控,方便我们进行数据库连接的数据信息分析,对sql进行监控,都是基础入门的教程,更深入的配置将在以后教程中讲解。
??作者介绍:【小阿杰】一个爱鼓捣的程序猿,JAVA开发者和爱好者。公众号【Java全栈架构师】维护者,欢迎关注阅读交流。
??好了,感谢您的阅读,希望您喜欢,如对您有帮助,欢迎点赞收藏。如有不足之处,欢迎评论指正。下次见。