社区
Java EE
帖子详情
spring方法拦截 只要是给我讲明白我把分全给他,嫌少还可以再加.
zhouqixiang
2007-04-04 10:57:19
那位高手能给小弟讲一下spring的方法拦截技术,最好再给一个简单的例子.谢谢
或者QQ给我讲也可以,我的QQ:328185788
...全文
723
16
打赏
收藏
spring方法拦截 只要是给我讲明白我把分全给他,嫌少还可以再加.
那位高手能给小弟讲一下spring的方法拦截技术,最好再给一个简单的例子.谢谢 或者QQ给我讲也可以,我的QQ:328185788
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
olifeo
2007-04-10
打赏
举报
回复
....
lemonfamily
2007-04-10
打赏
举报
回复
http://blog.csdn.net/lemonfamily/archive/2007/01/30/1498246.aspx
例子比较简单,你可以参看spring参考手册第6章:
http://www.redsaga.com/spring_ref/2.0/html/aop.html#aop-introduction-defn
feifei0079
2007-04-10
打赏
举报
回复
LZ 想知道的是不是Spring中关于AOP的部分啊?其实网上有很多这样的例子,简单的说,就是在不触动原有程序的基础上,你可以添加一个类,这个类继承了Spring中AOP部分的通知(有的书上叫装备),其实就是定义在指定方法前、后或前后等时候触发,这样做权限/日志管理等,就只需在这个类的方法里编写你需要的功能,然后在spring的配置文件中配置一下监控的方法就可以了,这样你就可以监控一个指定方法或者一个类的某个方法。
tureboyyyy
2007-04-07
打赏
举报
回复
夏昕的spring开发指南说的都很明白了,有空翻翻吧
johnskiller
2007-04-06
打赏
举报
回复
楼上正解
使用jdk1.3的动态代理方式,要求被拦截的类一定要实现某个接口,而代理是针对接口的。对于自己写的系统当然没问题,可是第三方库,就不一定满足这个要求了。
使用JDK5的泛型可以简化动态代理的制作,但是依然需要被拦截的类实现了某个接口。
使用CGLIB可以克服这个限制,它的原理是动态生成被拦截对象的子类,外面拿到的其实是这个子类,外面调用这个类的方法的时候,就有机会在执行父类(被拦截的对象)的方法前后插入其他动作,实现拦截。
insiku
2007-04-06
打赏
举报
回复
例子的话 自己google 或者买本书看看就有了 很简单的东西
insiku
2007-04-06
打赏
举报
回复
其实就是用cglib动态生成指定类的子类
然后在调用的实际上是子类的方法
在子类方法中加入需要的代码
然后再调用超类的方法
这就是所谓的方法拦截
用cglib的好处在与 他可以生成类的子类 拦截所有超类的方法
而jdk的代理类需要接口 只能拦截接口中的方法
古月一刀2005
2007-04-05
打赏
举报
回复
和楼主一样,学习!
johnskiller
2007-04-05
打赏
举报
回复
要理解方法拦截,先要理解java的动态Proxy
在Spring中,被拦截方法的类,都不是直接new出来,而是配置在Spring的工厂中,由Spring负责创建的。例如我们程序需要一个Coupe类的instance,Spring返回给我们程序的实际不是Coupe,而是Coupe的proxy,接下来调用Coupe的方法其实都是通过proxy进行的,自然就可以在proxy中拦截Coupe的所有方法了
下面是使用java dynamic proxy的使用方法,当然,Spring不是这么做的,而是使用CGLIB和ASM来动态的生成proxy的。如果大家有兴趣,可以另开话题讨论。
package com.skykiller.dyproxy;
import java.lang.reflect.*;
import java.io.PrintWriter;
public class TracingHandler implements InvocationHandler {
private Object target;
private PrintWriter out;
public TracingHandler(Object target, PrintWriter out) {
this.target = target;
this.out = out;
}
public static Object createProxy(Object obj, PrintWriter out) {
return Proxy.newProxyInstance(obj.getClass().getClassLoader(),
obj.getClass().getInterfaces(),
new TracingHandler(obj,out) );
}
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
Object result = null;
out.println( method.getName() + " called.");
try {
result = method.invoke( target, args);
} catch (InvocationTargetException e) {
out.println( method.getName() + " throw "+e.getCause());
throw e.getCause();
}
out.println(method.getName() + " return");
out.flush();
return result;
}
}
package com.skykiller.dyproxy;
public interface Car {
void init(String name, int passengers);
void show();
}
package com.skykiller.dyproxy;
public class Coupe implements Car {
private String name;
private int passengers;
public void init(String name, int passengers) {
this.name = name;
this.passengers = passengers;
}
public String toString() {
return name + " is a " + passengers + " seats car.";
}
public void show() {
System.out.println(toString());
}
/**
* @param args
*/
public static void main(String[] args) {
CarFactory coupeFactory = new CarFactory("com.skykiller.dyproxy.Coupe",true);
Car coupe = coupeFactory.newInstance("my coupe", 2);
System.out.println("Class name:"+coupe.getClass().getName());
System.out.println("My coupe's info:"+coupe);
coupe.show();
}
}
iiitom
2007-04-05
打赏
举报
回复
.....
zhouqixiang
2007-04-05
打赏
举报
回复
顶!!!
zhouqixiang
2007-04-05
打赏
举报
回复
顶!!!
zhouqixiang
2007-04-05
打赏
举报
回复
我现在对配置文件已经差不多了,但是对于业务实现还不是很清楚,哪位高手给讲讲
likgui
2007-04-05
打赏
举报
回复
很难说清楚,找本书看看吧!
zhouqixiang
2007-04-05
打赏
举报
回复
我郁闷,怎么就没有一个人回答呢?
zhouqixiang
2007-04-04
打赏
举报
回复
如果给我讲清楚了,最多可以给到200分!!!
Spring
Boot实战开发
本课程
讲
解了
Spring
Boot2.x中常见的技术内容,大家可以通过本课程的学习快速掌握
Spring
Boot的核心用法,并使用
Spring
Boot进行简化开发。 本课程在
讲
解时,使用了理论与案例相结合的方式,对每个知识点的介绍都会...
Spring
中
拦截
器和过滤器的使用
主要了解
Spring
Boot中使用
拦截
器和过滤器的使用,关于两者,资料所提及的有: 作用域差异:Filter是Servlet规范中规定的,只能用于WEB中,
拦截
器既可以用于WEB,也可以用于Application、Swing中(即过滤器是依赖于Servlet容器的,和它类似的还有Servlet中的监听器同样依赖该容器,而
拦截
器则不依赖它); 规范差异:Filter是Servlet规范中定义的,...
spring
AOP
拦截
自定义注解失效
前言: 在使用
Spring
AOP思想进行日志处理的时候遇到了一个问题,
Spring
AOP配置切点比较麻烦,而且通配
拦截
方法
,对于不需要做日志的
方法
就多余了,于是使用自定义注解方式,在需要
拦截
做日志的部分加上自定义注解即可,于是顺着这个思路开始做 环境:
Spring
MVC+
Spring
+Mybatis【测试环境,就没配置Mybatis】 Maven管理工具 具体配置:
Spring
...
Spring
boot整合
Spring
MVC
拦截
器的介绍和使用
前言 可能很多小伙伴对于
Spring
MVC的学习比较薄弱,在公司上班中看见项目中大量使用
Spring
MVC
拦截
器做一些请求前后的判断工作。那么此帖对
Spring
MVC的
拦截
器做一个介绍和使用。 正文
拦截
器的介绍
拦截
器也就是AOP概念下的一个产物。何为
拦截
器也就是在不改变原有请求
方法
的代码上对请求逻辑做一些分支改变或者是添加一些内容给请求内容。
Spring
MVC定义了一个
拦截
器的接口,接口中定义了几个
方法
,不同
方法
会在不同时机被调用。 HandlerInterceptor接口介绍 pre
Spring
Web源码之核心组件(
拦截
器与异常处理)
前言 上篇博文主要
讲
了
spring
mvc整体结构以及主要核心流程,其实细心的小伙伴可以看出其实小编还遗留了一些没有
讲
到,比方说
拦截
器与异常处理器,今天小编带大家主要
拦截
器以及异常处理器。 在介绍
拦截
器与异常处理器之前, 核心组件 总结 ...
Java EE
67,513
社区成员
225,879
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章