12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
ADADADADAD
mysql数据库 时间:2024-12-25 09:56:32
作者:文/会员上传
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
一、添加依赖<!--mybatis-开始--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.2.0</version
以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。
一、添加依赖
<!--mybatis-开始--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.2.0</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.26</version></dependency><!--mybatis-结束-->
二、配置application.properties
##################################mysql数据源配置##################################spring.datasource.url=jdbc:mysql://localhost/db_test?useUnicode=true&characterEncoding=utf-8spring.datasource.username=rootspring.datasource.password=123456spring.datasource.driver-class-name=com.mysql.jdbc.Driver#druid连接池spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
注意:其实到这里就可以正常使用了,但是如果想使用druid里的诸多属性,则需要添加支持类
三、添加druid的支持类
packagecom.example.demo.utils.configuration.druid;importorg.springframework.boot.autoconfigure.condition.ConditionalOnClass;importorg.springframework.boot.autoconfigure.condition.ConditionalOnProperty;importorg.springframework.boot.autoconfigure.jdbc.DataSourceProperties;importorg.springframework.boot.context.properties.ConfigurationProperties;importorg.springframework.boot.jdbc.DatabaseDriver;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importcom.alibaba.druid.pool.DruidDataSource;/***druid的支持类*@Author:我爱大金子*@Description:druid的支持类*@Date:Createdin12:482017/6/20*/@ConfigurationpublicclassDruidConfiguration{@ConditionalOnClass(DruidDataSource.class)@ConditionalOnProperty(name="spring.datasource.type",havingValue="com.alibaba.druid.pool.DruidDataSource",matchIfMissing=true)staticclassDruidextendsDruidConfiguration{@Bean@ConfigurationProperties("spring.datasource.druid")publicDruidDataSourcedataSource(DataSourcePropertiesproperties){DruidDataSourcedruidDataSource=(DruidDataSource)properties.initializeDataSourceBuilder().type(DruidDataSource.class).build();DatabaseDriverdatabaseDriver=DatabaseDriver.fromJdbcUrl(properties.determineUrl());StringvalidationQuery=databaseDriver.getValidationQuery();if(validationQuery!=null){druidDataSource.setValidationQuery(validationQuery);}returndruidDataSource;}}}
配置application.properties:
##################################mysql数据源配置##################################spring.datasource.url=jdbc:mysql://localhost/db_test?useUnicode=true&characterEncoding=utf-8spring.datasource.username=rootspring.datasource.password=123456spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.type=com.alibaba.druid.pool.DruidDataSource#初始化连接大小spring.datasource.druid.initial-size=8#最小空闲连接数spring.datasource.druid.min-idle=5#最大连接数spring.datasource.druid.max-active=10#查询超时时间spring.datasource.druid.query-timeout=6000#事务查询超时时间spring.datasource.druid.transaction-query-timeout=6000#关闭空闲连接超时时间spring.datasource.druid.remove-abandoned-timeout=1800
四、监控
4.1、配置servlet
packagecom.example.demo.utils.configuration.druid;importjavax.servlet.annotation.WebInitParam;importjavax.servlet.annotation.WebServlet;importcom.alibaba.druid.support.http.StatViewServlet;/***监控-配置servlet*@Author:我爱大金子*@Description:监控-servlet*@Date:Createdin12:502017/6/20*/@WebServlet(urlPatterns={"/druid/*"},initParams={@WebInitParam(name="loginUsername",value="liuy"),@WebInitParam(name="loginPassword",value="123456")})publicclassDruidStatViewServletextendsStatViewServlet{privatestaticfinallongserialVersionUID=1L;}
4.2、配置filter
packagecom.example.demo.utils.configuration.druid;importjavax.servlet.annotation.WebFilter;importjavax.servlet.annotation.WebInitParam;importcom.alibaba.druid.support.http.WebStatFilter;/***监控-配置filter*@Author:我爱大金子*@Description:描述*@Date:Createdin12:512017/6/20*/@WebFilter(filterName="druidWebStatFilter",urlPatterns="/*",initParams={@WebInitParam(name="exclusions",value="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")})publicclassDruidWebStatFilterextendsWebStatFilter{}
测试:访问http://localhost:9090/druid/index.html
注意:此时还没有SQL监控与spring监控。
4.3、配置sql监控与spring监控
在application.properties文件中配置sql监控
#sql监控配置:filter类名:stat,config,encoding,loggingspring.datasource.druid.filters=stat
spring监控配置
第一步:新建一个配置文件,如:druid-bean.xml
<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsd"><!--配置_Druid和Spring关联监控配置--><beanid="druid-stat-interceptor"class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor"></bean><!--方法名正则匹配拦截配置--><beanid="druid-stat-pointcut"class="org.springframework.aop.support.JdkRegexpMethodPointcut"scope="prototype"><propertyname="patterns"><list><value>com.example.demo.mapper.*</value></list></property></bean><aop:configproxy-target-class="true"><aop:advisoradvice-ref="druid-stat-interceptor"pointcut-ref="druid-stat-pointcut"/></aop:config></beans>
第二步:在启动类上加载druid-bean.xml文件
packagecom.example.demo;importcom.example.demo.utils.filter.CustomFilter;importcom.example.demo.utils.listener.CustomListener;importcom.example.demo.utils.servlet.CustomServlet;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.boot.web.servlet.*;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.ImportResource;importjavax.servlet.DispatcherType;importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjava.util.EnumSet;@ServletComponentScan@SpringBootApplication@ImportResource(locations={"classpath:druid-bean.xml"})publicclassSpringbootDemo27Application{publicstaticvoidmain(String[]args){SpringApplication.run(SpringbootDemo27Application.class,args);}}
重启服务,报异常:
解决:添加aop依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency>
重启服务
另一种实现方式
packagecom.liuy.demo.configuration;importorg.springframework.boot.autoconfigure.condition.ConditionalOnClass;importorg.springframework.boot.autoconfigure.condition.ConditionalOnProperty;importorg.springframework.boot.autoconfigure.jdbc.DataSourceProperties;importorg.springframework.boot.context.properties.ConfigurationProperties;importorg.springframework.boot.jdbc.DatabaseDriver;importorg.springframework.boot.web.servlet.FilterRegistrationBean;importorg.springframework.boot.web.servlet.ServletRegistrationBean;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importcom.alibaba.druid.pool.DruidDataSource;importcom.alibaba.druid.support.http.StatViewServlet;importcom.alibaba.druid.support.http.WebStatFilter;@ConfigurationpublicclassDruidConfiguration{@ConditionalOnClass(DruidDataSource.class)@ConditionalOnProperty(name="spring.datasource.type",havingValue="com.alibaba.druid.pool.DruidDataSource",matchIfMissing=true)staticclassDruidextendsDruidConfiguration{@Bean@ConfigurationProperties("spring.datasource.druid")publicDruidDataSourcedataSource(DataSourcePropertiesproperties){DruidDataSourcedruidDataSource=(DruidDataSource)properties.initializeDataSourceBuilder().type(DruidDataSource.class).build();DatabaseDriverdatabaseDriver=DatabaseDriver.fromJdbcUrl(properties.determineUrl());StringvalidationQuery=databaseDriver.getValidationQuery();if(validationQuery!=null){druidDataSource.setValidationQuery(validationQuery);}returndruidDataSource;}}@BeanpublicServletRegistrationBeanstatViewServlet(){ServletRegistrationBeanservletRegistrationBean=newServletRegistrationBean(newStatViewServlet(),"/druid/*");//IP白名单servletRegistrationBean.addInitParameter("allow","127.0.0.1,192.168.1.83");//IP黑名单(优先级高于白名单)servletRegistrationBean.addInitParameter("deny","192.168.1.100");//控制台管理用户servletRegistrationBean.addInitParameter("loginUsername","liuy");servletRegistrationBean.addInitParameter("loginPassword","123456");//是否能够重置数据servletRegistrationBean.addInitParameter("resetEnable","false");returnservletRegistrationBean;}@BeanpublicFilterRegistrationBeanstatFilter(){FilterRegistrationBeanfilterRegistrationBean=newFilterRegistrationBean(newWebStatFilter());//添加过滤规则filterRegistrationBean.addUrlPatterns("/*");//忽略过滤的格式filterRegistrationBean.addInitParameter("exclusions","*.js,*.css,*.jpg,*.ico,/druid/*");returnfilterRegistrationBean;}}
application.properties:
spring.profiles.active=devserver.port=9090##################################mysql数据源配置##################################spring.datasource.url=jdbc:mysql://localhost/db_test?useUnicode=true&characterEncoding=utf-8spring.datasource.username=rootspring.datasource.password=123456spring.datasource.driver-class-name=com.mysql.jdbc.Driver#druid连接池spring.datasource.type=com.alibaba.druid.pool.DruidDataSource#初始化大小,最小,最大spring.datasource.druid.initial-size=5spring.datasource.druid.minIdle=5spring.datasource.druid.maxActive=20#获取连接等待超时的时间(毫秒)spring.datasource.druid.max-wait=60000#间隔多久进行一次检测,检测需要关闭的空闲连接(毫秒)spring.datasource.druid.time-between-eviction-runs-millis=60000#一个连接在池中的最小生存时间(毫秒)spring.datasource.druid.min-evictable-idle-time-millis=300000spring.datasource.druid.validation-query=SELECT1FROMDUALspring.datasource.druid.test-while-idle=truespring.datasource.druid.test-on-borrow=falsespring.datasource.druid.test-on-return=false#打开PSCache,并且指定每个连接上PSCache的大小spring.datasource.druid.pool-prepared-statements=truespring.datasource.druid.max-pool-prepared-statement-per-connection-size=20#查询超时时间spring.datasource.druid.query-timeout=6000#事务查询超时时间spring.datasource.druid.transaction-query-timeout=6000#关闭空闲连接超时时间spring.datasource.druid.remove-abandoned-timeout=1800#sql监控配置:filter类名:stat,config,encoding,loggingspring.datasource.druid.filters=stat#通过connect-properties属性来打开mergesql功能;慢查询记录spring.datasource.druid.connect-properties.druid.stat.meergeSql=true;spring.datasource.druid.connect-properties.druid.stat.slowSqlMillis=5000#合并多个druidDataSource的监控数据#spring.datasource.druid.use-global-data-source-stat=true##################################mybatis基于xml集成###################################扫包mybatis.mapper-locations:classpath:mybatis/*.xml#别名mybatis.type-aliases-package:com.liuy.demo.pojo
11-20
11-19
11-20
11-20
11-20
11-19
11-20
11-20
11-19
11-20
11-19
11-19
11-19
11-19
11-19
11-19