Spring自定义切面采用两种方式:一是使用xlm配置,二是使用注释。在3.0以后使用spring注释时一定要注意,配置方式已经改变。
一,spring3.0以前注释使用方式如下:
@Aspect
public class CheckUser {
@Pointcut("execution(* org.service.*.find*(..))")
public void checkUser() {
System.out
.println("**************The System is Searching Information For You****************");
}
@Pointcut("execution(* org.service.*.add*(..))")
public void checkAdd() {
System.out.println("**************<< Add User >> Checking.....***************");
}
@Before("checkUser()")
public void beforeCheck() {
System.out.println(">>>>>>>> 准备搜查用户..........");
}
@After("checkUser()")
public void afterCheck() {
System.out.println(">>>>>>>> 搜查用户完毕..........");
}
@Before("checkAdd()")
public void beforeAdd() {
System.out.println(">>>>>>>> 增加用户--检查ing..........");
}
@After("checkAdd()")
public void afterAdd() {
System.out.println(">>>>>>>> 增加用户--检查完毕!未发现异常!..........");
}
}
一,spring3.0以后注释使用方式如下:
@Aspect
public class CheckUser {
/*
* @Pointcut("execution(* com.jushi.aop.*.find*(..))") public void
* checkUser() { System.out .println(
* "**************The System is Searching Information For You****************"
* ); }
*
* @Pointcut("execution(* com.jushi.aop.*.add*(..))") public void checkAdd()
* { System.out
* .println("**************<< Add User >> Checking.....***************"); }
*/
@Before("execution(* com.jushi.aop.*.add*(..))")
public void beforeCheck(JoinPoint jp) {
System.out.println(">>>>>>>> 准备搜查用户..........");
}
@After("execution(* com.jushi.aop.*.add*(..))")
public void afterCheck(JoinPoint jp) {
System.out.println(">>>>>>>> 搜查用户完毕..........");
}
@Before("execution(* com.jushi.aop.*.add*(..))")
public void beforeAdd(JoinPoint jp) {
System.out.println(">>>>>>>> 增加用户--检查ing..........");
}
@After("execution(* com.jushi.aop.*.add*(..))")
public void afterAdd(JoinPoint jp) {
System.out.println(">>>>>>>> 增加用户--检查完毕!未发现异常!..........");
}
}
如果使用不当会出现
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'user' defined in class path resource [applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: error at ::0 can't find referenced pointcut checkAdd
Caused by: java.lang.IllegalArgumentException: error at ::0 can't find referenced pointcut checkAdd
分享到:
相关推荐
4. **配置AOP**:在Spring 3.0中,可以使用XML配置或者注解方式来声明AOP。XML配置通过`<aop:config>`和`<aop:advisor>`等元素定义切入点和通知。注解方式则更加简洁,如`@Aspect`定义切面,`@Pointcut`定义切入点,...
标题"Spring3.0AOP所需jar包"指的是为了在Spring 3.0及以上版本中使用AOP功能,我们需要额外添加一些jar包到项目中。这些jar包通常包括Spring AOP模块本身以及其依赖的相关库。Spring框架的每个主要模块都有对应的...
在下载的"spring3.0 全部jar包"中,"dist"文件夹可能包含了所有Spring 3.0框架运行所需的库文件,包括核心容器、AOP、ORM、Web、Test等多个模块的jar包。这些jar文件是构建和运行Spring 3.0应用的基础,它们包含了...
Spring 3.0 是一个里程碑式的版本,在Java企业级应用开发领域中占据着核心地位。这个版本的发布引入了许多新特性、改进和优化,旨在提升开发者的工作效率和应用程序的可维护性。Spring 框架以其强大的依赖注入...
本书主要介绍了Spring 3.0的核心内容,不仅讲解了Spring 3.0的基础知识,还深入讨论了Spring IoC容器、Spring AOP、使用Spring JDBC访问数据库、集成Hibernate、Spring的事务管理、Spring MVC、单元测试、敏捷开发...
《Spring 3.0、Spring MVC 3.0与MyBatis 3.0整合详解》 在现代Java企业级应用开发中,Spring框架因其强大的功能和灵活性而被广泛使用。Spring 3.0作为其重要的一个版本,引入了诸多改进和新特性,提升了开发效率和...
`spring-context-3.0.xsd` 文件包含了在上下文环境中配置的各种元素,如消息源、事件监听器、AOP 配置、bean 的工厂方法等。这个文件对于实现高度自定义的 Spring 应用程序非常重要。 4. **spring-mvc-3.1.xsd**: ...
Spring的核心之一就是它的XML配置,而Spring-3.0.xsd则是Spring框架3.0版本的XML schema定义文件,它规定了如何在XML配置文件中正确地声明和配置Spring的各种组件。本文将深入探讨Spring-3.0.xsd,了解其结构、元素...
本文将深入探讨Spring 3.0.5版本中的AOP(面向切面编程)特性,以及如何使用它来提升代码的可维护性和模块化。AOP是一种编程范式,它允许程序员定义“切面”,这些切面可以包含业务逻辑的各个部分,如日志、事务管理...
Spring 3.0是Spring框架的一个重要版本,它在2009年发布,标志着Spring框架进入了一个全新的时代。这个版本引入了许多改进和新特性,旨在提高开发效率、增强灵活性和可扩展性。以下是关于Spring 3.0框架的一些关键...
4. **AOP增强**:在Spring3.0中,AOP的使用更加方便,可以通过注解定义切面,减少了编写代理代码的工作。同时,增强了切点表达式(Pointcut Expression)的功能。 5. **SpringMVC**:作为Spring框架的Web层解决方案...
这个压缩包包含的是Spring 3.0的jar文件,意味着你可以直接导入到项目中使用,而无需担心资源的完整性和测试问题。在使用前,请确保你的环境满足Spring 3.0的系统需求,并参考Spring官方文档来了解如何配置和使用...
Spring 3.0改进了对Java泛型的支持,允许在依赖注入时使用泛型类型,提高了代码的类型安全性。 9. **JMX支持**: 提供了更好的JMX(Java Management Extensions)支持,便于管理和监控Spring应用程序。 10. **...
API文档(chm格式)提供了关于Spring3.0框架的详细说明,包括各个模块的功能、接口和类的用法。开发者可以通过查阅API文档了解如何配置Bean、AOP(面向切面编程)、事务管理、数据访问、MVC(模型-视图-控制器)等...
在Spring 3.0.5中,为了在AOP中使用`HttpServletResponse`,你需要创建一个切面,该切面包含一个通知,该通知可以访问并操作`HttpServletResponse`。通常,你会在切面中定义一个环绕通知(Around Advice),因为它...
在使用"spring 3.0.0"这个压缩包时,开发者需要确保包含所有必要的jar文件,例如`spring-beans.jar`、`spring-context.jar`、`spring-core.jar`、`spring-expression.jar`、`spring-aop.jar`等,这些文件构成了...
在Spring框架中,面向切面编程(Aspect Oriented Programming,简称AOP)是一种强大的设计模式,它允许我们定义横切关注点,如日志、事务管理、权限检查等,然后将这些关注点与核心业务逻辑解耦。这篇教程将详细讲解...
spring-aop-3.0.xsd
1. **注解驱动的AOP**:Spring 3.0加强了对注解的支持,允许开发者在方法上直接使用`@Aspect`、`@Before`、`@After`等注解定义切面。 2. **JDK动态代理与CGLIB结合**:Spring 3.0可以同时使用JDK动态代理和CGLIB,...
Spring 3.1 是一个非常重要的Java框架,它在企业级应用开发中广泛使用,尤其在控制反转(IOC)和面向切面编程(AOP)方面。这些概念是Spring框架的核心特性,帮助开发者实现松耦合和代码复用,提高了应用程序的可...