diaodiaofly的gravatar头像
diaodiaofly 2014-07-23 14:17:07

阿里云的druid(数据库连接池)spring如何更好的权限访问呢?

还在等什么 10牛币 期待您的指导!!

首先我简单介绍下这东西的用处?(官方给的文档只是ip配置控制权限,个人觉得这种方式太局限性了)

本人笑话网http://www.seejoke.com 使用的springmvc 这么做<mvc:mapping path="/druid/**" />不能实现拦截.故希望广大朋友们给点指导意见和方法.

Druid可以做什么? 

1) 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。 

2) 替换DBCPC3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。 

3) 数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。 

4) SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-LoggingLog4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。 

扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter-Chain机制,很方便编写JDBC层的扩展插件。 

如下是一个基于Druid内置扩展StatFilter的监控实现

阿里云的druid(数据库连接池)spring如何更好的权限访问呢?


最代码官方编辑于2014-7-23 23:39:07
所有回答列表(5)
最代码官方的gravatar头像
最代码官方  LV167 2014年7月23日
package com.zuidaima.core.aop;

public class DruidAroundMethod
      @Pointcut(value = "execution(* com.druid.*.*(..))")
	public void druidPonitcut() {
	}

	@Around(value = "controllerPonitcut() ||  proxyDaoPonitcut() ")
	public Object druidAround(ProceedingJoinPoint joinpoint) throws Throwable {
		//做权限验证
		return methodReturn;
	}

spring applicationContext.xml中aop的配置

<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
<aop:config proxy-target-class="true" />
<bean id="AroundMethed" class="com.zuidaima.core.aop.DruidAroundMethod"></bean>

通过aop应该可以。

另外通过拦截器为啥不行呢?拦截器有前置和后置,可以实现吧?

评论(2) 最佳答案
光头强的gravatar头像
光头强  LV3 2014年8月12日

阿里的开源软件做的确实不错,国人顶一个!

沪-飏的gravatar头像
沪-飏  LV9 2014年8月12日

公司最近也用了这个

watfgzs的gravatar头像
watfgzs  LV21 2015年2月5日

在你的web.xml中加入下面的代码,

然后当你访问  http://你的域名/druid   的时候会进入登录页面,只有登录成功了才能进入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>admin</param-value>
        </init-param>
        <init-param>
            <!-- 密码 -->
            <param-name>loginPassword</param-name>
            <param-value>123456</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>DruidStatView</servlet-name>
        <url-pattern>/druid/*</url-pattern>
    </servlet-mapping>

 

90songjian的gravatar头像
90songjian  LV8 2016年9月11日

不知道 怎么样才能获得NB

顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友