AOP使用代码:
一、Dao层
接口:AopTestDao
package com.sshcp.dao; public interface AopTestDao { public void aopTest(); }
实现类:AopTestDaoImpl
package com.sshcp.dao.impl; import javax.annotation.Resource; import org.springframework.stereotype.Component; import com.sshcp.dao.AopTestDao; @Component("aopTestDao") public class AopTestDaoImpl implements AopTestDao { public void aopTest() { // TODO Auto-generated method stub System.out.println("dao 层 "); } }
service层:
接口类:AopServiceI
package com.sshcp.service.aopi; public interface AopServiceI { public void aopTestMothod(); }
实现类:AopServiceImpl
package com.sshcp.service.aopi.impl; import javax.annotation.Resource; import org.springframework.stereotype.Component; import com.sshcp.dao.AopTestDao; import com.sshcp.service.aopi.AopServiceI; @Component("aopServiceI") public class AopServiceImpl implements AopServiceI { private AopTestDao aopTestDao ; // 注入dao层AopTestDao public AopTestDao getAopTestDao() { return aopTestDao; } @Resource public void setAopTestDao(AopTestDao aopTestDao) { this.aopTestDao = aopTestDao; } public void aopTestMothod() { // TODO Auto-generated method stub System.out.println("aop test service here "); } }
切面类:AspectTest
package com.sshcp.aspect; import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; import org.springframework.stereotype.Component; @org.aspectj.lang.annotation.Aspect @Component public class AspectTest { @Pointcut("execution(* com.sshcp.service.aopi.impl.AopServiceImpl.aop*(..)))") public void testMothod(){ } @Before("testMothod()") public void beforeMothe(){ System.out.println("121212121212121212 Before......."); } @After("testMothod()") public void afterMothe(){ System.out.println("2323232323232323232 After........"); } }
Spring xml 中加入如下配置:
<context:annotation-config /> <aop:aspectj-autoproxy /> <context:component-scan base-package="com.sshcp" />
测试代码:
package com.hibernate.test; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.sshcp.service.aopi.AopServiceI; public class AopTest { @Test public void test(){ ApplicationContext app = new ClassPathXmlApplicationContext("classpath:applicationContext-c3p0.xml"); AopServiceI as = (AopServiceI)app.getBean("aopServiceI"); as.aopTestMothod(); } }
测试打印出的信息:
121212121212121212 Before.......
aop test service here
2323232323232323232 After........
搞定
相关推荐
这种方式虽然相比注解方式略显繁琐,但对于大型项目或者需要精细控制AOP配置的情况,仍然是一个很好的选择。通过深入理解和实践,我们可以更好地利用Spring AOP来优化我们的应用程序,提高代码的可读性和可维护性。
本文将详细讲解Spring AOP的XML配置和注解方式配置。 ### XML配置方式 #### 1. 配置AOP支持 首先,在Spring的配置文件中启用AOP支持,需要添加`<aop:config>`标签: ```xml <aop:config> <!-- 这里可以配置切点...
使用Java注解是最常见的AOP配置方式。在Spring中,我们可以在切面类上使用`@Aspect`注解声明,然后在方法上使用`@Before`, `@After`, `@Around`, `@AfterReturning`和`@AfterThrowing`等注解来定义不同的通知类型。...
基于AspectJ注解的AOP配置是Spring 2.5引入的新特性,它使得AOP的使用更加简洁直观。AspectJ提供了丰富的注解,如`@Aspect`定义切面,`@Before`、`@After`、`@Around`定义前置通知、后置通知和环绕通知,`@Pointcut`...
从Spring 3.0开始,引入了基于注解的AOP配置,这使得AOP的配置更加简洁和直观。首先,我们需要在`@Aspect`注解的类中定义切入点和通知: ```java @Aspect @Component("loggingAspect") public class LoggingAspect ...
在Spring XML配置文件中,我们可以定义以下元素来实现AOP配置: - `<aop:config>`:声明AOP配置。 - `<aop:pointcut>`:定义切入点表达式,例如`execution(* com.example.service.*.*(..))`表示匹配...
在提供的压缩包文件 `SpringNet_Lesson15` 中,可能包含了示例代码和配置文件,你可以参考这些资源进一步理解如何在实际项目中配置和使用 Spring.NET AOP。通过实践,你可以更好地掌握如何定义和配置切面,以及如何...
通过分析这些文件,你可以看到AOP配置的具体实现,从而更好地理解和掌握SSH框架中的AOP使用。请根据实际情况调整配置,以适应你的项目需求。记住,AOP的核心在于合理地定义切点和通知,以实现代码的解耦和增强。
- **基于注解的配置**:使用注解如`@Aspect`、`@Before`、`@After`等直接在类和方法上声明切面和通知。 4. **XML配置AOP**: 在Spring的XML配置文件中,我们需要定义`<aop:config>`元素来开启AOP支持,然后创建`...
### Spring AOP配置详解 #### 一、Spring AOP配置概览 面向切面编程(Aspect-Oriented Programming,简称AOP)是Spring框架的重要特性之一,它通过将业务逻辑中的横切关注点(Cross-cutting Concerns)与核心业务...
在Spring框架中,AOP通过代理实现,可以使用XML配置或注解进行配置。本篇文章主要聚焦于Spring AOP的XML配置通知。 **一、AOP概念解析** 1. **切面(Aspect)**:一个关注点的模块化,例如事务管理就是一个切面。...
二、基于注解的AOP配置 1. **启用AOP代理**:在Spring配置文件中,通过<aop:aspectj-autoproxy/>元素启用基于注解的AOP。 ```xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop=...
以上就是Spring AOP XML配置的基本使用方法。通过这种方式,我们可以将非业务逻辑的关注点(如日志、事务管理)与业务逻辑解耦,使得代码更加整洁,易于维护。在实际项目中,根据需求选择合适的通知类型和切入点...
Spring AOP配置 在Spring XML配置文件中,可以声明切面和通知,如下: ```xml <aop:config> <aop:aspect id="loggingAspect" ref="loggingService"> <aop:before method="logBefore" pointcut="execution(* ...
在本“aop配置demo”中,我们将探讨两种主要的AOP配置方式:基于XML的配置和基于注解的配置。 首先,让我们深入了解一下基于XML的配置。在Spring的XML配置文件中,我们可以通过`<aop:config>`标签来启用AOP支持。...
通过合理的AOP配置,我们可以实现对特定方法的拦截,并在这些方法抛出异常时执行自定义的处理逻辑,从而提高了代码的健壮性和用户体验。这不仅展示了Spring框架的强大功能,也体现了面向切面编程在实际项目中的价值...
Spring AOP 提供了一种灵活的方式来实现事务管理,通过配置事务特性和事务管理切面来实现事务管理。 配置事务管理切面: 在 Spring AOP 中,事务管理切面是通过 `<aop:config>` 元素来配置的。该元素用于定义一个...
### Spring之AOP配置文件详解 #### 一、前言 在Java开发中,Spring框架因其强大的功能和灵活的配置而被广泛应用于企业级应用的开发。其中,面向切面编程(Aspect Oriented Programming,简称AOP)是Spring框架的...
无论是基于XML的AOP配置还是基于注解的AOP配置,其核心都是将横切关注点从业务逻辑中分离出来,从而实现更好的代码组织和管理。选择哪种配置方式取决于项目的具体需求和个人偏好。对于简单的项目或小型团队,基于...