1.创建一个文件TimeInterceptor.java代码如下
package com.questionnaire.common.filter;
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class TimeInterceptor implements MethodInterceptor {
private static final Log log = LogFactory.getLog(TimeInterceptor.class);
private int error;
public TimeInterceptor() {
this.error = 50;
}
@Override
public Object invoke(MethodInvocation methodInvocation) throws Throwable {
long procTime = System.currentTimeMillis();
try {
return methodInvocation.proceed();
} finally {
procTime = System.currentTimeMillis() - procTime;
String msg = "Process method "
+ methodInvocation.getMethod().getName()
+ " successful! Total time: " + procTime + " milliseconds!";
if (procTime > this.error) {
if (log.isErrorEnabled())
log.error(msg);
}
}
}
public void setError(int error) {
this.error = error;
}
}
2.在spring配置文件中添加如下
<bean id="timeInterceptor" class="com.questionnaire.common.filter.TimeInterceptor">
<property name="error" value="150" />
</bean>
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<value>*DAO</value>
</property>
<property name="interceptorNames">
<list>
<value>timeInterceptor</value>
</list>
</property>
</bean>
分享到:
相关推荐
3、拦截器在方法前后,异常前后等调用,而过滤器只能在请求前和请求后各调一次。 4、拦截器可以利用依赖注入,因此在spring框架程序中,优先拦截器 5、拦截器是包裹在过滤器中使用的。 复习 converter 转换器 ...
6.interceptor 拦截器,将未登录的用户拦截至主页 7.service 服务层,将业务层操作与持久层操作绑定 8.test 单元测试 9.util 工具类,包括百度地图经纬度搜索,Json转String,md5加密,Python图片识别,mybatis...
interceptor:权限拦截包 listener:目前只有session的监听器,用于监听session的 service:具体的业务处理包 util:项目工具包 vo:存放业务结果数据的,响应页面的json对象就存放在里面ResultData类里面 conf文件...
(4)com.chen.web.interceptor.AuthorizationInterceptor.java 限制上传大小的拦截器 (5) src下的applicationContext.xml 和 hibernate.cfg.xml 是hibernate配置信息和Spring的配置分开配置再通过classpath 导入给...
18.2 编写一个自定义的拦截器 268 18.3 使用DataSourceInjectorInterceptor拦截器 269 18.4 小结 273 第19章定制结果类型 274 19.1 概述 274 19.2 编写一个自定义的结果类型 274 19.3 使用新的结果类型 277 ...
这是因为某个servlet(服务器端Java程序)在应用户的请求而首次调入内存执行之后将一直驻留在内存里,对同一个servlet的后续请求不用再对这个servlet的类进行实例化,因此响应速度更快。 可是,servlet也存在一个...
阿里云java sdk源码 toutiao 使用Spring boot编写的咨询网站 采用MVC模式,并实现前后...DAO层 │ │ │ ├── interceptor // 网站拦截器实现 │ │ │ ├── model // 各数据模型 │ │ │ ├── service //
(2)业务方面:建了vo,util工具,dao各种方法,service,action,interceptor拦截器,这些层。 (3)配置方面:struts.xml reg-validator hbm.xml log4j.properties web.xml (4)web方面:css样式,前台的注册和登录...
•SeimiCrawler一个敏捷强大的Java爬虫框架 •1.简介 •2.需要 •3.快速开始 ◦3.1.maven依赖 ◦3.2.在SpringBoot中 ◦3.3.常规用法 •4.原理 ◦4.1.基本原理 ◦4.2.集群原理 •5.如何开发 ◦5.1.约定 ◦...
请注意,这里面有一个方法名 selectUserByID 必须与 User.xml 里面配置的 select 的id 对应() 重写测试代码 程序代码 程序代码 public static void main(String[] args) { SqlSession session = ...
{13.7}DAO}{199}{section.13.7} {13.8}java.util.Date与java.sql.Date比较}{200}{section.13.8} {13.9}Meta Data}{201}{section.13.9} {13.10}可滚动结果集}{201}{section.13.10} {13.11}Procedure}{201}{...
技术栈说明基于SpringBoot结合以下技术栈研发权限框架:Shiro持久层:MyBatis视图层:无日志:Logback单元测试:未集成插件:Swagger、Lombok包名说明api: 存放APIservice:存放业务类dao:存放持久层类core:存放...