https://gitbook.cn/books/5b99fb4990f0e17e7b56b214/index.html
/*
在任意public方法的执行时匹配
*/
@Pointcut("execution (public * * (..)) ")
private void anyPublicOperation(){}
/*
任何以do开头的函数
*/
@Pointcut("execution (* do* (..)) ")
private void anyDoOperation(){}
/*
Package下的任意连接点(方法)执行时匹配
*/
@Pointcut("within (com.pubutech.example.aop.thinking.*)")
private void inPackage(){}
/*
Package下或者子包下的任意连接点(方法)执行时匹配
*/
@Pointcut("within (com.pubutech.example.aop.thinking..*)")
private void inPackages(){}
/*
Package下或者子包下的任意public连接点(任意public方法)执行时匹配
*/
@Pointcut("inPackages() && anyPublicOperation() ")
private void inPackageAnyPublicOPeration(){}
/*
Package下或者子包下的任意public连接点(任意public方法)执行时匹配
理论上 这里想告诉大家 within target args 都没有我们都可以用execution 直接做到
*/
@Pointcut("execution (public * com.pubutech.example.aop.thinking..*.*(..)) ")
private void inPackageAnyPublicOPerationInexecution(){}
/*
Package下或者子包下的任意连接点(方法)执行时匹配
*/
@Pointcut("execution(* com.pubutech.example.aop.thinking..*.*(..))")
public void executioniInPackagesPointCut() {}
/*
Package下的任意连接点(方法)执行时匹配
*/
@Pointcut("execution(* com.pubutech.example.aop.thinking.*.*(..))")
public void executioniInPackagePointCut() {}
/*
实现接口的所有实体对象的所有方法执行
*/
@Pointcut("target (com.pubutech.example.aop.interfacetest.IBussiness)")
public void targetPointCut(){}
/*
接口的所有代理对象的所有方法执行,一般情况下和target一样,高深用法后面演示
*/
@Pointcut("this (com.pubutech.example.aop.interfacetest.IBussiness)")
public void thisPointCut(){}
/*
精确拿到方法执行传递的参数
实际上 args参数我们可以用JAVA反射拿到,所以不用也是可以的,后面Around有案例
*/
@Pointcut("execution(* com.pubutech.example.aop.interfacetest.BusinessImpl.doException(..)) && args(msg)")
public void argsPointCut(Message msg){}
/*
类级别的注解 里面所有的函数执行时
*/
@Pointcut("@within(org.springframework.stereotype.Component)")
public void withinPointCut(){}
/*
函数传递的参数使用的注解对象
RequestBody Controller里面的Mapping方法里面请求参数是JSON格式的注解,帮助大家理解函数参数注解
@PostMapping(value = "/add")
public ObjectResponse add(@RequestBody UserEntity user) {
*/
@Pointcut("@args(org.springframework.web.bind.annotation.RequestBody)")
public void aArgsPointCut(){}
/*
方法的注解所使用的
Transactional 方法事务执行的注解,这边只是一个案例,帮助大家理解一下方法注解
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
public void addRoleResources(Long roleId, String resourcesId) {
*/
@Pointcut("@annotation(org.springframework.transaction.annotation.Transactional)")
public void annotationPointcut() {
}
/*
Spring 特有的bean操作
*/
@Pointcut("bean(serviceImpl)")
public void beanPointCut(){}
分享到:
相关推荐
1. Joinpoint(连接点):在Spring AOP中,Joinpoint指的是程序执行的某个特定点,如方法的执行。在Spring中,Joinpoint主要指的是方法的调用。 2. Advice(通知):Advice是在特定Joinpoint上执行的代码片段。...
**AOP小结** 面向切面编程(Aspect-Oriented Programming,简称AOP)是一种编程范式,旨在解决软件开发中的横切关注点问题。在传统的面向对象编程中,业务逻辑与系统服务(如日志、事务管理、权限检查等)往往交织...
**3.1.3 小结** 动态代理的主要优点在于其灵活性,能够轻松地为任何实现了接口的类添加额外的行为。但需要注意的是,只有实现了接口的类才能使用动态代理。 ##### 3.2 动态字节码生成 动态字节码生成技术允许在...
**AOP使用问题小结** 1. **切入点的声明规则**:切点通常由`@Pointcut`注解定义,可以基于方法、包、注解等条件。 2. **增强通知的顺序**:Spring默认按照方法的顺序执行通知,`@Before`先于`@AfterReturning`,`@...
【Spring 框架学习小结】 Spring 是一个流行的 Java 应用开发框架,它以其控制反转(Inversion of Control, IOC)和面向切面编程(Aspect-Oriented Programming, AOP)为核心特性,被誉为轻量级框架。下面将详细...
在Spring中,切面由切入点(Pointcut)和通知(Advice)组成,切入点定义了哪些方法会被拦截,通知定义了拦截后要执行的行为。我们可以使用注解或XML配置来定义切面。 此外,Spring还提供了众多其他功能,如MVC框架...
SpringBoot 使用 AOP+注解实现简单的权限验证的方法 ...小结 使用 AOP+注解可以实现简单的权限验证,确保应用程序的安全性。本文介绍了如何使用 SpringAOP 框架和自定义注解来实现权限验证,以确保应用程序的安全性。
Spring框架作为Java开发领域中最受欢迎的企业级应用程序框架之一,其核心特性包括控制反转(Inversion of Control, IoC)、依赖注入(Dependency Injection, DI)、面向切面编程(Aspect Oriented Programming, AOP...
#### 10.6 小结 本章介绍了如何使用MyEclipse 6来开发基于Spring框架的应用程序,涵盖了从基本的Spring配置到高级的AOP和数据库集成技术。 #### 10.7 参考资料 - **MyEclipse生成的Spring+Hibernate无法保存数据...
#### 五、小结 Spring框架提供了丰富的事务管理方式,使得开发者可以根据项目需求选择最适合自己的方案。通过本文的介绍,相信读者已经对Spring事务配置的五种方式有了更深入的理解。在实际开发过程中,开发者可...
14.5.2. 小结 14.6. 文档视图(PDF/Excel) 14.6.1. 简介 14.6.2. 配置和安装 14.6.2.1. 文档视图定义 14.6.2.2. Controller 代码 14.6.2.3. Excel视图子类 14.6.2.4. PDF视图子类 14.7. JasperReports 14.7.1. 依赖...
14.5.2. 小结 14.6. 文档视图(PDF/Excel) 14.6.1. 简介 14.6.2. 配置和安装 14.7. JasperReports 14.7.1. 依赖的资源 14.7.2. 配置 14.7.3. 构造ModelAndView 14.7.4. 使用子报表 14.7.5. 配置Exporter的...
**12.5 SpringMVC小结** - **优势**:清晰的架构、易于理解和使用。 - **自由度和扩展性**:通过各种配置和自定义实现高度的灵活性。 #### 补充 **13.1 前台传method的方法名,后台通过反射调用方法** 通过动态...
14.5.2. 小结 14.6. 文档视图(PDF/Excel) 14.6.1. 简介 14.6.2. 配置和安装 14.7. JasperReports 14.7.1. 依赖的资源 14.7.2. 配置 14.7.3. 构造ModelAndView 14.7.4. 使用子报表 14.7.5. 配置Exporter的...
14.5.2. 小结 14.6. 文档视图(PDF/Excel) 14.6.1. 简介 14.6.2. 配置和安装 14.7. JasperReports 14.7.1. 依赖的资源 14.7.2. 配置 14.7.3. 构造ModelAndView 14.7.4. 使用子报表 14.7.5. 配置Exporter的...
14.5.2. 小结 14.6. 文档视图(PDF/Excel) 14.6.1. 简介 14.6.2. 配置和安装 14.7. JasperReports 14.7.1. 依赖的资源 14.7.2. 配置 14.7.3. 构造ModelAndView 14.7.4. 使用子报表 14.7.5. 配置Exporter的...
小结** 对上述组件的功能进行了简要总结。 - **5.3. 验证** - **5.3.1. ExceptionTranslationFilter** 用于处理认证过程中发生的异常。 - **5.3.2. AuthenticationEntryPoint** 定义了当用户尝试访问受...
- **小结**:这些组件共同构成了 Spring Security 的核心架构,提供了强大的身份验证和授权能力。 **5.3 验证** - **什么是 Spring Security 的验证呢?** - Spring Security 的验证机制允许开发者自定义认证过程...
- **5.2.4 小结** 这些组件共同协作,实现了用户认证和授权的核心逻辑。 **5.3 验证** - **5.3.1 ExceptionTranslationFilter** 当认证失败时触发的过滤器。 - **5.3.2 AuthenticationEntryPoint** 当用户...