使用AspectJ提供的注解方式实现aop
2016-04-29 01:59
721 查看
spring实现aop的方式有一下几种
1、基于代理的AOP
2、纯简单java对象切面
3、@Aspect注解形式的
4、注入形式的Aspcet切面
下面是用@aspect注解形式实现的,首先是导入一些的jar包
切面的代码
实现类
spring的配置文件中添加
通过aop命名空间的<aop:aspectj-autoproxy />声明自动为spring容器中那些配置@aspectJ切面的bean创建代理,织入切面。当然,spring
在内部依旧采用AnnotationAwareAspectJAutoProxyCreator进行自动代理的创建工作,但具体实现的细节已经被<aop:aspectj-autoproxy />隐藏起来了
测试代码
结果就是在输出do..之前输出了before do...
实际应用中可以用来实现日志功能
1、基于代理的AOP
2、纯简单java对象切面
3、@Aspect注解形式的
4、注入形式的Aspcet切面
下面是用@aspect注解形式实现的,首先是导入一些的jar包
切面的代码
@Component @Aspect public class Advice { @Before("init()")//通知 public void log(){ System.out.println("before do..."); } @Pointcut("execution(* service.*.*(..))")//方法切入点,execution为执行的意思,*代表任意返回值,然后是包名,.*意思是包下面的所有子包。(..)代表各种方法.
public void init(){ } }
实现类
@Component("serviceImpl") public class ServiceImpl implements Service { @Override public void saySomething() { System.out.println("do.."); } }
spring的配置文件中添加
<context:annotation-config></context:annotation-config> <context:component-scan base-package="service,advice"></context:component-scan> <aop:aspectj-autoproxy></aop:aspectj-autoproxy>
通过aop命名空间的<aop:aspectj-autoproxy />声明自动为spring容器中那些配置@aspectJ切面的bean创建代理,织入切面。当然,spring
在内部依旧采用AnnotationAwareAspectJAutoProxyCreator进行自动代理的创建工作,但具体实现的细节已经被<aop:aspectj-autoproxy />隐藏起来了
测试代码
public class Test { public static void main(String[] args) { // TODO Auto-generated method stub ApplicationContext ac = new ClassPathXmlApplicationContext("service/bean.xml"); Service ser = (Service) ac.getBean("serviceImpl"); ser.saySomething(); } }
结果就是在输出do..之前输出了before do...
实际应用中可以用来实现日志功能
相关文章推荐
- 深入分析HaspMap源码
- Form中runat="server"属性的意义
- 在ASP.NET 2.0中操作数据:创建母版页和站点导航
- 在ASP.NET 2.0中操作数据:使用ObjectDataSource展现数据
- 在ASP.NET 2.0中操作数据:声明参数
- ASP.NET集成模式下的管道事件
- Raspberry Pi3 ~ Eclipse中添加wiringPi 库函数
- Asp.net 图片的两种处理方式
- ASP.NET显示农历时间
- C#、Asp.Net 农历与阴历之间相互转化工具类
- 在ASP.NET 2.0中操作数据之二:创建一个业务逻辑层
- 使用ASP.NET创建线程实例教程
- ASP.NET My97DatePicker日期控件实现OA日期记事功能
- win10系统IIS开启ASP程序错误信息怎么调试?
- ASP.NET使用My97DatePicker日期控件实例
- 在一个空ASP.NET Web项目上创建一个ASP.NET Web API 2.0应用(转载)
- ASP.NET项目开发中日期控件DatePicker如何使用
- ASP.NET MVC 路由调试工具Router Debugger
- Windows Server 2008 R2上部署ASP.NET MVC3.0应用网站程序
- Metasploit是一款开源的安全漏洞检测工具,