永发信息网

(急)java aop切面的一个问题

答案:2  悬赏:0  手机版
解决时间 2021-02-15 20:50
比如说 :
有一个 service层有一个切点 test(String str)方法,并且需要一个参数
在这个方法调用之前,会调用before方法
我想问的就是 test方法里的那个参数 能不能传到before方法里?
我现在before方法里就需要外面传过来的一个参数 应该怎么传
最佳答案
两种方法吧!
第一种在Before函数里面直接用连接点。
 @Before("@annotation(com.cgs.anno.NeedTest)")
public void atAnnotaionTest(JoinPoint pjp) throws Throwable {
Object[] args= pjp.getArgs();
System.out.println("atAnnotaionTest() executed!"+args[0]);
}第二种是参数绑定
@Before("target(com.cgs.service) && args(name,..)")
public void bindJoinPointParams(String name){
  System.out.println("----bindJoinPointParams()----");
  System.out.println("name:"+name);
  System.out.println("----bindJoinPointParams()----");
}第二种情况,记得一定要开启CGLib动态代理,即




自然,切点的选择就是你自己的事情了。这里随便举个例子
全部回答
比如说我定义两个函数:begin(){} ;end(){} 然后呢我就建了一个类,类中加了三个成员函数: first(){},second(){},third(){}; 如果我给这个三个成员函数加了aop,只要我调用者三个函数时 调用都会先调用begin(){},调用后都会调用end(){}。 形式如下变成了三个函数: first(){} ---------> 1.begin(){}; 2.first(){} 3.end(){} 剩下两个也一样,类似于junit测试里的before和after中间夹着你自己的函数。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
如何将毛笔字练好
连云港金海永发监理有限公司在哪里啊,我有事
【献血的好处】你认为有效的献血者教育.动员
煮冰糖藕10斤藕放多少冰糖
(4275-24x75)÷25计算不能简便
批量读取手机号码卡内的信息,可以插很多的手
亲梅逐马的结局怎么样啊
花都的阳光家居在哪里啊?
今年即2010年无机非金属材料就业怎样啊,急!
易鑫农机在什么地方啊,我要过去处理事情
怎样做一名合格的中式烹调归(作文)
x+x²+x³+……x^n=?求公式x的n次方
育才国际教育本部校区我想知道这个在什么地方
风云雄霸天下无名拉的二胡叫什么名字
大连足球学校怎么样?想要个客观的评价
推荐资讯
加美布艺生活馆地址在什么地方,想过去办事
【云霞】请问云霞的含义是什么
做篮球助教要求什么
欠条怎么写?
【板框压滤机工作原理】简述板框压滤机的结构
意米煮熟,晚上用放冰箱吗?
殴米茄有没在香港出过一批今生宝贝纪念表
Journal of the Northwest Communication Ass
大沙洲怎么去啊,有知道地址的么
在沈阳室内设计圈比较有名的人都有谁?
浪鲸卫浴不要买,设计缺陷坐便跑水,一年跑水
文言文启蒙167——197的题目加译文
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?