基于 maven 的 ssm 项目搭建七:初探 druid

在以前的JAVA项目中一直使用c3po连接池,因工作原因很久也没有关注最新的一些开源了,最近无意发现了alibaba/druid很强大,只是在使用SQLITE时遇到一些问题。所以,上篇整合时使用了mysql数据库,下面来尝试下druid的一些功能。

1、简单的使用

接着上一篇的项目如下操作:

第一步,打开Druid的监控统计功能,这在上一篇中已配置过了,即spring中类似如下的配置:

<property name="filters" value="stat" />

第二步,配置web.xml,加入如下配置项:

	<!-- druid 配置 -->
	<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>druid</param-value>
		</init-param>
		<init-param>
			<!-- 密码 -->
			<param-name>loginPassword</param-name>
			<param-value>druid</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>DruidStatView</servlet-name>
		<url-pattern>/druid/*</url-pattern>
	</servlet-mapping>
这里配置的信息表示,druid的登录页面地址形如: http://localhost:8080/website_java3/druid/index.html,账号和密码都是 druid

第三步,执行 Mavel install

第四步,发布和启动tomcat

第五步,访问http://localhost:8080/website_java3/druid/index.html,并使用druid登录,打开如下的页面:



此时再访问一下之前的demohttp://localhost:8080/website_java3/index.do,打开druid的“SQL监控”就可以监控到刚才访问的SQL语句了:


2、其他功能

2.1 访问控制

<servlet>
    <servlet-name>DruidStatView</servlet-name>
    <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
    <init-param>
        <param-name>allow</param-name>
        <param-value>128.242.127.1/24,128.242.128.1</param-value>
    </init-param>
    <init-param>
        <param-name>deny</param-name>
        <param-value>128.242.127.4</param-value>
    </init-param>
</servlet>

  • allow 代表允许访问的IP地址,如果没有配置或为空,则表示允许所有访问;
  • deny 代表拒绝访问的IP地址;
  • deny 的优先级高于 allow,即当一个IP同时存在于 allow 和 deny 中时,则不允许访问;
  • 不支持IPV6。

2.2 关闭重置(Reset All)

在首页右上角有一个重置按钮,执行这个操作之后,会导致所有计数器清零,重新计数。你可以通过配置参数关闭它。

<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>false</param-value>
    </init-param>
</servlet>

2.3 慢SQL记录

<bean id="stat-filter" class="com.alibaba.druid.filter.stat.StatFilter">
	<property name="slowSqlMillis" value="10000" />
	<property name="logSlowSql" value="true" />
</bean>

上面的配置放在spring配置文件里。

StatFilter属性slowSqlMillis用来配置SQL慢的标准,执行时间超过slowSqlMillis的就是慢。slowSqlMillis的缺省值为3000,也就是3秒。


2.4 监控配置

<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>

放在web.xml中,用于指定将监控何种资源,其中的exclusions选项值表示需要排除的资源规则,比如*.js,/jslib/*等等。


另外,druid还有很多强大的功能,继续学习!


3、使用 SQLite 数据库

在上一篇中,最初是想整合 sqlite ,但在使用中遇到“ResultSet closed 异常”问题,网上搜索测试后如下解决:

3.1 方法一:修改“source.properties”文件

修改如下两个参数:

druid.poolPreparedStatements=false
druid.maxPoolPreparedStatementPerConnectionSize=0

3.2 方法二:修改“spring-context.xml”文件

删除如下两个配置:

        <!-- 打开PSCache,并且指定每个连接上PSCache的大小 oracle=true mysql=false -->
        <property name="poolPreparedStatements" value="${druid.poolPreparedStatements}" /><!-- 表明是否开启statement cache,默认为false,也就是不开启 -->  
        <property name="maxPoolPreparedStatementPerConnectionSize" value="${druid.maxPoolPreparedStatementPerConnectionSize}" /><!-- statement cache的大小,默认为-1,也就是不限制 -->


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值