当前位置:首页 > 数据库 > Sqlserver

SpringMVC4+MyBatis+SQL Server2014+druid 监控SQL运行情况

前言

      在基于SpringMVC+MyBatis的开发过程中,我们希望能看到自己手写SQL的执行情况,在开发阶段我们可以配置log4j在控制台里基于debug模式查看,那么上线后,在生产声我们想查看SQL的执行情况呢,这时候就该druid出场了,druid自带一些监控界面,可以监控SQL、监控Web、监控URL。 

 

使用druid监控SQL

技术分享

技术分享

使用druid监控URI

技术分享

 

开发环境

   idea2016、SpringMVC4、Mybatis3、druid1.0.28

 

SSM整合

1、pom.xml

技术分享 技术分享
                  1
                <
                project 
                xmlns
                ="http://maven.apache.org/POM/4.0.0"
                 xmlns:xsi
                ="http://www.w3.org/2001/XMLSchema-instance"
                  2
                  xsi:schemaLocation
                ="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
                >
                  3
                <
                modelVersion
                >4.0.0</modelVersion>  4<groupId>com.autohome</groupId>  5<artifactId>SpringMVC3</artifactId>  6<packaging>war</packaging>  7<version>1.0-SNAPSHOT</version>  8<name>SpringMVC3</name>  9<url>http://maven.apache.org</url> 10<dependencies> 11<dependency> 12<groupId>junit</groupId> 13<artifactId>junit</artifactId> 14<version>4.10</version> 15</dependency> 16<dependency> 17<groupId>org.springframework</groupId> 18<artifactId>spring-core</artifactId> 19<version>4.3.6.RELEASE</version> 20</dependency> 21<dependency> 22<groupId>org.springframework</groupId> 23<artifactId>spring-beans</artifactId> 24<version>4.3.6.RELEASE</version> 25</dependency> 26<dependency> 27<groupId>org.springframework</groupId> 28<artifactId>spring-context</artifactId> 29<version>4.3.6.RELEASE</version> 30</dependency> 31<dependency> 32<groupId>org.springframework</groupId> 33<artifactId>spring-web</artifactId> 34<version>4.3.6.RELEASE</version> 35</dependency> 36<dependency> 37<groupId>org.springframework</groupId> 38<artifactId>spring-context-support</artifactId> 39<version>4.3.6.RELEASE</version> 40</dependency> 41<dependency> 42<groupId>org.springframework</groupId> 43<artifactId>spring-webmvc</artifactId> 44<version>4.3.6.RELEASE</version> 45</dependency> 46<dependency> 47<groupId>org.springframework</groupId> 48<artifactId>spring-jdbc</artifactId> 49<version>4.3.6.RELEASE</version> 50</dependency> 51<dependency> 52<groupId>org.apache.velocity</groupId> 53<artifactId>velocity</artifactId> 54<version>1.6.2</version> 55</dependency> 56<dependency> 57<groupId>org.apache.velocity</groupId> 58<artifactId>velocity-tools</artifactId> 59<version>2.0</version> 60</dependency> 61<dependency> 62<groupId>org.mybatis</groupId> 63<artifactId>mybatis</artifactId> 64<version>3.4.2</version> 65</dependency> 66<dependency> 67<groupId>org.mybatis</groupId> 68<artifactId>mybatis-spring</artifactId> 69<version>1.3.0</version> 70</dependency> 71<dependency> 72<groupId>com.microsoft.sqlserver</groupId> 73<artifactId>sqljdbc4</artifactId> 74<version>4.0</version> 75</dependency> 76<dependency> 77<groupId>commons-dbcp</groupId> 78<artifactId>commons-dbcp</artifactId> 79<version>1.4</version> 80</dependency> 81<dependency> 82<groupId>javax.servlet</groupId> 83<artifactId>javax.servlet-api</artifactId> 84<version>3.1.0</version> 85</dependency> 86<dependency> 87<groupId>com.alibaba</groupId> 88<artifactId>druid</artifactId> 89<version>1.0.28</version> 90</dependency> 91<dependency> 92<groupId>log4j</groupId> 93<artifactId>log4j</artifactId> 94<version>1.2.17</version> 95</dependency> 96</dependencies> 97<build> 98<finalName>SpringMVC3</finalName> 99</build>100</project>
View Code

2、web.xml

    使用druid监控主要配置DruidWebStatFilter、StatViewServlet、druid用户名和密码(可选)

            <!
            DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" 
            >
            <
            web-app
            >
            <
            display-name
            >Archetype Created Web Application</display-name><!--告知javaEE容器,有那些内容需要添加到上下文里去--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!--log4j参数配置--><context-param><param-name>log4jConfigLocation</param-name><param-value>classpath:config/log4j.properties</param-value></context-param><listener><listener-class>org.springframework.web.util.Log4jConfigListener</listener-class></listener><!--spring 前端控制器--><servlet><servlet-name>SpringMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc-servlet.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>SpringMVC</servlet-name><url-pattern>/</url-pattern></servlet-mapping><filter><filter-name>DruidWebStatFilter</filter-name><filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class><init-param><param-name>exclusions</param-name><param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value></init-param></filter><filter-mapping><filter-name>DruidWebStatFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!--druid监控servlet--><servlet><servlet-name>druidStatView</servlet-name><servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class><init-param><!-- 允许清空统计数据 --><param-name>resetEnable</param-name><param-value>true</param-value></init-param><init-param><!-- 用户名 --><param-name>loginUsername</param-name><param-value>sqlserver</param-value></init-param><init-param><!-- 密码 --><param-name>loginPassword</param-name><param-value>123</param-value></init-param></servlet><servlet-mapping><servlet-name>druidStatView</servlet-name><url-pattern>/druid/*</url-pattern></servlet-mapping><!--防止js,css等文件被springmvc拦截 让tomcat来处理--><servlet-mapping><servlet-name>default</servlet-name><url-pattern>/2sc/js/*</url-pattern><url-pattern>/2sc/Style/*</url-pattern></servlet-mapping></web-app>

3、springmvc-servlet.xml

              1
            <?
            xml version="1.0" encoding="UTF-8"
            ?>
              2
            <
            beans 
            xmlns
            ="http://www.springframework.org/schema/beans"
              3
                   xmlns:xsi
            ="http://www.w3.org/2001/XMLSchema-instance"
              4
                   xmlns:mvc
            ="http://www.springframework.org/schema/mvc"
              5
                   xmlns:context
            ="http://www.springframework.org/schema/context"
              6
                   xsi:schemaLocation
            ="http://www.springframework.org/schema/beans

              7
                   http://www.springframework.org/schema/beans/spring-beans.xsd

              8
                   http://www.springframework.org/schema/context

              9
                   http://www.springframework.org/schema/context/spring-context.xsd

             10
                   http://www.springframework.org/schema/mvc

             11
                   http://www.springframework.org/schema/mvc/spring-mvc.xsd

             12
            "
            >
             13
             14
            <!--
            从配置文件加载数据库信息
            -->
             15
            <
            bean 
            class
            ="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
            >
             16
            <
            property 
            name
            ="locations"
             value
            ="classpath:config/jdbc.properties"
            />
             17
            <
            property 
            name
            ="fileEncoding"
             value
            ="UTF-8"
            />
             18
            </
            bean
            >
             19
             20
            <!--
            配置数据源,这里使用Spring默认
            -->
             21
            <!--
            <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            -->
             22
            <!--
            <property name="driverClassName" value="${sqlserver.driver}"/>
            -->
             23
            <!--
            <property name="url" value="${sqlserver.url}"/>
            -->
             24
            <!--
            <property name="username" value="${sqlserver.username}"/>
            -->
             25
            <!--
            <property name="password" value="${sqlserver.password}"/>
            -->
             26
            <!--
            </bean>
            -->
             27
             28
            <!--
            配置数据源 druid
            -->
             29
            <
            bean 
            id
            ="dataSource"
             class
            ="com.alibaba.druid.pool.DruidDataSource"
             init-method
            ="init"
             destroy-method
            ="close"
            >
             30
            <
            property 
            name
            ="driverClassName"
             value
            ="${sqlserver.driver}"
            />
             31
            <
            property 
            name
            ="url"
             value
            ="${sqlserver.url}"
            />
             32
            <
            property 
            name
            ="username"
             value
            ="${sqlserver.username}"
            />
             33
            <
            property 
            name
            ="password"
             value
            ="${sqlserver.password}"
            />
             34
             35
            <
            property 
            name
            ="filters"
             value
            ="stat"
            />
             36
             37
            <
            property 
            name
            ="maxActive"
             value
            ="20"
            />
             38
            <
            property 
            name
            ="initialSize"
             value
            ="1"
            />
             39
            <
            property 
            name
            ="maxWait"
             value
            ="60000"
            />
             40
            <
            property 
            name
            ="minIdle"
             value
            ="1"
            />
             41
             42
            <
            property 
            name
            ="timeBetweenEvictionRunsMillis"
             value
            ="60000"
            />
             43
            <
            property 
            name
            ="minEvictableIdleTimeMillis"
             value
            ="300000"
            />
             44
             45
            <
            property 
            name
            ="testWhileIdle"
             value
            ="true"
            />
             46
            <
            property 
            name
            ="testOnBorrow"
             value
            ="false"
            />
             47
            <
            property 
            name
            ="testOnReturn"
             value
            ="false"
            />
             48
             49
            <
            property 
            name
            ="poolPreparedStatements"
             value
            ="true"
            />
             50
            <
            property 
            name
            ="maxOpenPreparedStatements"
             value
            ="20"
            />
             51
            </
            bean
            >
             52
             53
            <!--
            扫描Mapper
            -->
             54
            <
            bean 
            class
            ="org.mybatis.spring.mapper.MapperScannerConfigurer"
            >
             55
            <
            property 
            name
            ="basePackage"
             value
            ="com.autohome.mapper"
            />
             56
            </
            bean
            >
             57
             58
            <!--
            配置sqlSessionFactory
            -->
             59
            <
            bean 
            id
            ="sqlSessionFactory"
             class
            ="org.mybatis.spring.SqlSessionFactoryBean"
            >
             60
            <
            property 
            name
            ="configLocation"
             value
            ="classpath:springmvc-mybatis.xml"
            />
             61
            <
            property 
            name
            ="dataSource"
             ref
            ="dataSource"
            />
             62
            </
            bean
            >
             63
             64
            <!--
            启用最新的注解器、映射器
            -->
             65
            <
            mvc:annotation-driven
            />
             66
             67
            <!--
            使用默认的Servlet来响应静态资源
            -->
             68
            <
            mvc:default-servlet-handler
            />
             69
             70
            <!--
            扫描Controller注解类
            -->
             71
            <
            context:component-scan 
            base-package
            ="com.autohome.controller"
            />
             72
            <!--
            扫描Service注解类
            -->
             73
            <
            context:component-scan 
            base-package
            ="com.autohome.service"
            />
             74
             75
            <!--
            velocity模板配置
            -->
             76
            <
            bean 
            id
            ="velocityConfig"
             class
            ="org.springframework.web.servlet.view.velocity.VelocityConfigurer"
            >
             77
            <
            property 
            name
            ="resourceLoaderPath"
             value
            ="/WEB-INF/views/"
            />
             78
            <
            property 
            name
            ="configLocation"
             value
            ="classpath:config/velocity.properties"
            />
             79
            <
            property 
            name
            ="velocityProperties"
            >
             80
            <
            props
            >
             81
            <
            prop 
            key
            ="input.encoding"
            >UTF-8</prop> 82<prop key="output.encoding">UTF-8</prop> 83</props> 84</property> 85</bean> 86 87<!--配置视图解析器--> 88 89<!--jsp视图解析器--> 90<!--<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">--> 91<!--<property name="prefix" value="/WEB-INF/views/"/>--> 92<!--<property name="suffix" value=".jsp"/>--> 93<!--</bean>--> 94 95<bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver"> 96<property name="suffix" value=".vm"/> 97<property name="prefix" value=""/> 98<property name="contentType" value="text/html;charset=UTF-8"/> 99</bean>100101</beans>

 

总结

   项目结构我在第一篇ssm整合的基础上继续开发,加入了log4j、druid监控。

 

参考

   https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatViewServlet%E9%85%8D%E7%BD%AE

 

原文:http://www.cnblogs.com/sword-successful/p/6595973.html


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!