博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javaEE之------ApectJ的切面技术===标签
阅读量:6255 次
发布时间:2019-06-22

本文共 3432 字,大约阅读时间需要 11 分钟。

如今比較流行了aop技术之中的一个========标签

实现步骤:

一,导入aop标签

方法,打开aop包。里面就有。

这个里面就有

然后依据选择spring的版本号。

在配置文件里配置

例如以下:

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">

这样就导入了aop标签

二,配置切点和通知

里面的配置通知类型非常多

三。被代理类以及自己主动注解类

 

。导入我们作为切面的类

配置文件已经完毕。

五,被导入的作为切面的类

public class MyAdvisor {		public void test1(){			System.out.println("这是test...");		}}
非常普通的一类。方法名在配置切面里面,通知的时间也完毕了。。这里就能够实现想要完毕的动作了。

标签相当于之前的,有非常大的优化,如在核心模块全然不知道是都做了拦截,进一步实现了解耦。

=========================这里已经介绍完====================

源码以及測试

1,配置文件

xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> <!-- 须要的三元素 (被代理类。 自己主动代理类,切面)採用标签,切面和之前的有点不同,仅仅是一个简单的pojo导入 --> <bean id="person" class="cn.aop.aspectj3.Person"></bean> <!-- 自己主动代理注解 <bean class="org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator"></bean> --> <!-- 注解自己主动标签,自己主动去查找带有注解的类和方法 --> <aop:aspectj-autoproxy></aop:aspectj-autoproxy> <aop:config> <aop:aspect ref="myadvior"> <aop:pointcut expression="execution(* cn..Person.*(..))" id="cut"/> <aop:before method="test1" pointcut-ref="cut"/> <!-- 这是通知,拦截切点位置。也就是拦截时 须要做的事情 --> <aop:aftermethod="test1" pointcut-ref="cut"/> <!-- 拦截核心之后运行的动作。所有写在test1方法里面了 --> <!-- <aop:before method="test1" pointcut="execution(* cn..Person.*(..))"/> 这样也是能够的。就不用切点了,直接写在这里面 --> </aop:aspect> </aop:config> <bean class="cn.aop.aspectj3.MyAdvisor" id="myadvior"/><!--当做切面的pojo 注入 --> </beans>

     2,  作为切面的类

package cn.aop.aspectj3;public class MyAdvisor {		public void test1(){			System.out.println("这是test...");		}}
3,被代理的对象

package cn.aop.aspectj3;public class Person {	public void say(){		System.out.println("...这是say..");	}		public void run(){		System.out.println("这是person中的 run方法");	}	}
4,測试

@Test	public void Test2(){		ApplicationContext context =new ClassPathXmlApplicationContext("cn/aop/aspectj3/aspectj3.xml");		Person p =context.getBean(Person.class);		p.run();		p.say();	}

转载于:https://www.cnblogs.com/gavanwanggw/p/7190705.html

你可能感兴趣的文章
python 调用aiohttp
查看>>
Spring Boot中使用MyBatis注解配置详解
查看>>
linux下文件的一些文件颜色的含义
查看>>
跨域iframe高度自适应(兼容IE/FF/OP/Chrome)
查看>>
如何花更少的时间学习更多的知识
查看>>
学习鸟哥的Linux私房菜笔记(8)——文件查找与文件管理2
查看>>
升级fedora 18到fedora 19
查看>>
【代码小记】无
查看>>
BarTender 2016表单中的“秤显示”控件
查看>>
11月20日学习内容整理:jquery插件
查看>>
Arduino入门之前
查看>>
Redis客户端集群
查看>>
javascript基础篇:函数
查看>>
SVN与TortoiseSVN实战:补丁详解
查看>>
java一些面试题
查看>>
干货型up主
查看>>
获取页面中所有dropdownlist类型控件
查看>>
读《淘宝数据魔方技术架构解析》有感
查看>>
rm 命令(转)
查看>>
[禅悟人生]真知从实践中来
查看>>