文档章节

Spring Aop随笔

暖海砬
 暖海砬
发布于 2017/04/10 14:52
字数 332
阅读 3
收藏 0
点赞 0
评论 0

1、定义切入点:要拦截的方法

@Pointcut("@annotation(com.bird.aop.OperLogInject)")   //所有注解@OperLogInject()的方法

 public void serviceAspect() {  }

//自定义注解@OperLogInject:

@Target({ElementType.PARAMETER, ElementType.METHOD})    
@Retention(RetentionPolicy.RUNTIME)    
@Documented
public @interface OperLogInject {
    String code() default "" ; //操作类型LogType.Desc
    String content()  default ""; //操作内容
}

 

2、定义切面:要执行的目标方法

@Aspect

public class OperLogAspect {

    @After("serviceAspect()")
    public void doAfter(JoinPoint joinPoint) {

        //target method

    }

}

 

3、自定义注解要用到的元注解

元注解是指注解的注解。包括  @Retention @Target @Document @Inherited四种。

3.1 @Retention: 定义注解的保留策略

@Retention(RetentionPolicy.SOURCE)   //注解仅存在于源码中,在class字节码文件中不包含

@Retention(RetentionPolicy.CLASS)     // 默认的保留策略,注解会在class字节码文件中存在,但运行时无法获得,

@Retention(RetentionPolicy.RUNTIME)  // 注解会在class字节码文件中存在,在运行时可以通过反射获取到

 

3.2  @Target:定义注解的作用目标

 @Target(ElementType.TYPE)   //接口、类、枚举、注解

@Target(ElementType.FIELD) //字段、枚举的常量

@Target(ElementType.METHOD) //方法

@Target(ElementType.PARAMETER) //方法参数

@Target(ElementType.CONSTRUCTOR)  //构造函数

@Target(ElementType.LOCAL_VARIABLE)//局部变量

@Target(ElementType.ANNOTATION_TYPE)//注解

@Target(ElementType.PACKAGE) ///   

 由以上的源码可以知道,他的elementType 可以有多个,一个注解可以为类的,方法的,字段的等等

 

3.3 @Document:说明该注解将被包含在javadoc中

3.4 @Inherited:说明子类可以继承父类中的该注解

© 著作权归作者所有

共有 人打赏支持
暖海砬
粉丝 0
博文 10
码字总数 2222
作品 0
嘉定
程序员
Aspectj与Spring AOP比较

1、简介 今天有多个可用的 AOP 库, 它们需要能够回答许多问题: 是否与用户现有的或新的应用程序兼容? 在哪里可以实现 AOP? 与自己的应用程序集成多快? 性能开销是多少? 在本文中, 我们将...

沈渊 ⋅ 04/18 ⋅ 0

Spring AOP就是这么简单啦

前言 只有光头才能变强 上一篇已经讲解了Spring IOC知识点一网打尽!,这篇主要是讲解Spring的AOP模块~ 之前我已经写过一篇关于AOP的文章了,那篇把比较重要的知识点都讲解过了一篇啦:Sprin...

Java3y ⋅ 05/24 ⋅ 0

BeanPostProcessor —— 连接Spring IOC和AOP的桥梁

之前都是从大Boss的视角,来介绍Spring,比如IOC、AOP。 今天换个视角,从一个小喽啰出发,来加深对Spring的理解。 这个小喽啰就是,BeanPostProcessor(下面简称BBP)。 讲解思路: BBP怎么...

SexyCode ⋅ 昨天 ⋅ 0

Spring AOP解释及在项目中使用举例

一.AOP是什么 AOP - Aspect Oriented Programing,面向切面编程。将封装好的对象切开,找出其中对多个对象产生影响的公共行为,并将其封装为一个可重用的模块,这个模块被命名为“切面”,切...

Jacktanger ⋅ 06/08 ⋅ 0

Spring AOP与拦截器的区别

作用层面 拦截器只对action负责,作用层面一般位于Controller层 Spring AOP主要是拦截对Spring管理的Bean的访问,一般作用与Service层 2、联系与区别 联系: Spring AOP和拦截器一样,都是A...

niithub ⋅ 05/06 ⋅ 0

Spring中基于AOP的XML架构

以下内容引用自http://wiki.jikexueyuan.com/project/spring/aop-with-spring-framenwork/xml-schema-based-aop-with-spring.html: 为了使用aop命名空间标签,需要导入spring-aop架构,如下......

easonjim ⋅ 2017/05/25 ⋅ 0

Aspect Oriented Programming杂谈

至今Aspect Oriented Programming已经被开发人员所熟知,其简写AOP,译为面向方面编程(也有称面向切面编程)。其产生于90年代Xerox PARC实验室编程范式。被称为oop的延续,oop主要针对业务处...

zting科技 ⋅ 2017/01/10 ⋅ 0

Spring AOP中自我调用的问题

前几天在做项目的时候同事说,在使用AOP进行拦截的时候发现有些方法有时候能输出拦截的日志有时候不输出拦截的日志。发现在单独调用这些方法的时候是有日志输出,在被同一个类中的方法调用的...

木叶之荣 ⋅ 2017/05/21 ⋅ 0

IOC/AOP工具 - jBeanBox

jBeanBox是一个微形但功能较齐全的IOC/AOP工具适用于JAVA7+,利用了Java的初始化块实现的Java配置代替XML。jBeanBox采用Apache License 2.0开源协议。 其他一些IOC/AOP框架的问题: 1)Sprin...

yong9981 ⋅ 2016/07/25 ⋅ 14

Spring - AOP简单理解及术语解释

工作中使用Spring Boot将近一年了,由于某些需要也接触过Spring Cloud。Spring到Spring Boot再到Spring Cloud,逐渐地变成了一套完整的企业分布式系统的解决方案,已经不能单纯的认为是基于S...

陶源0111 ⋅ 06/17 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

linux 安装docker

通过以下命令下载安装docker wget -qO- https://get.docker.com | sh 执行以上命令后输出以下内容说明安装成功,注意红框中的内容,docker安装成功后默认只有root能使用,红框中给出的提示是...

haoyuehong ⋅ 2分钟前 ⋅ 0

482. License Key Formatting - LeetCode

Question 482. License Key Formatting Solution 思路:字符串转化为char数组,从后遍历,如果是大写字母就转化为小写字母,如果是-就忽略,如果遍历了k个字符(排除-)就追加一个-。 Java实现...

yysue ⋅ 20分钟前 ⋅ 0

聊聊spring cloud gateway的LoadBalancerClientFilter

序 本文主要研究一下spring cloud gateway的LoadBalancerClientFilter GatewayLoadBalancerClientAutoConfiguration spring-cloud-gateway-core-2.0.0.RELEASE-sources.jar!/org/springfram......

go4it ⋅ 45分钟前 ⋅ 0

详解:Nginx反代实现Kibana登录认证功能

Kibana 5.5 版后,已不支持认证功能,也就是说,直接打开页面就能管理,想想都不安全,不过官方提供了 X-Pack 认证,但有时间限制。毕竟X-Pack是商业版。 下面我将操作如何使用Nginx反向代理...

问题终结者 ⋅ 51分钟前 ⋅ 0

002、nginx配置虚拟主机

一、nginx配置虚拟主机可分为三种方式,分别为: 1、基于域名的虚拟主机,通过域名来区分虚拟主机——应用:外部网站 2、基于端口的虚拟主机,通过端口来区分虚拟主机——应用:公司内部网站...

北岩 ⋅ 54分钟前 ⋅ 0

shell脚本之死循环写法

最近在学习写shell脚本,在练习if while等流程控制时,突然它们的死循环写法是怎么样的?经过百度与亲测记录如下: for死循环 #! /bin/bashfor ((;;));do date sleep 1d...

hensemlee ⋅ 56分钟前 ⋅ 0

苹果的ARKit2.0有多可怕,看了就知道

序言 ARKit主要由三部分组成: 跟踪(Tracking) 跟踪是ARKit的核心组件之一,其提供了设备在物理世界中的位置与方向信息,并对物体进行跟踪,如人脸。 2.场景理解(Scene Understanding) 场...

_小迷糊 ⋅ 57分钟前 ⋅ 0

5.1 vim介绍 5.2 vim移动光标 5.3 ,5.4vim一般模式下移动光标,复制粘贴

vim命令 vim是vi的一个升级版;vim可以显示文字的颜色 安装vim这一个包vim-enhanced 如果不知道安装包,可以使用 命令下面命令来查看vim命令是那个包安装的。 [root@linux-128 ~]# yum prov...

Linux_老吴 ⋅ 今天 ⋅ 0

vim一般模式

vim 是什么 vim是什么 ? 在之前接触Linux,编辑网卡配置文件的时候我们用过了vi ,vim简单说就是vi的升级版,它跟vi一样是Linux系统中的一个文本编辑工具。 如果系统中没有vim ,需要安装一...

李超小牛子 ⋅ 今天 ⋅ 0

docker实战

构建企业级Docker虚拟化平台实战 重点剖析虚拟化和云计算概念; 分析Docker虚拟化的概念和原理; 从0开始实战Docker虚拟化平台; 基于Docker构建Nginx WEB服务器和CentOS虚拟机; 基于开源监...

寰宇01 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部