1.先写一个普通类:
package com.spring.aop;
public class Common {
<wbr>public void execute(String username,String password){<br><wbr><wbr><wbr><wbr> System.out.println("------------------普通类----------------");<br><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr>
}
2.写一个切面类,用于合法性校验和日志添加:
package com.spring.aop;
public class Check {
<wbr>public void checkValidity(){<br><wbr><wbr><wbr><wbr> System.out.println("------------------验证合法性----------------");<br><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr>
public void addLog(JoinPoint j){
<wbr><wbr>System.out.println("------------------添加日志----------------");<br><wbr><wbr>Object obj[] = j.getArgs();<br><wbr><wbr> for(Object o :obj){<br><wbr><wbr><wbr> System.out.println(o);<br><wbr><wbr> }<br><wbr><wbr> System.out.println("========checkSecurity=="+j.getSignature().getName());//这个是获得方法名<br><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
}
3.配置AOP,使用XML方式:(注意红色标志的内容)
<?xml version="1.0" encoding="UTF-8"?>
<beans
<wbr>xmlns="<a href="http://www.springframework.org/schema/beans">http://www.springframework.org/schema/beans</a>"<br><wbr>xmlns:xsi="<a href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a>"<br><wbr><span style="color:#fd2202">xmlns:aop="</span><a href="http://www.springframework.org/schema/aop"><span style="color:#fd2202">http://www.springframework.org/schema/aop</span></a><span style="color:#fd2202">"<br></span><wbr>xsi:schemaLocation="<a href="http://www.springframework.org/schema/beans">http://www.springframework.org/schema/beans</a>
<a href="http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">http://www.springframework.org/schema/beans/spring-beans-2.5.xsd</a><br><wbr><a href="http://www.springframework.org/schema/aop"><span style="color:#fa1309">http://www.springframework.org/schema/aop</span></a>
<a href="http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"><span style="color:#fa1309">http://www.springframework.org/schema/aop/spring-aop-2.5.xsd</span></a>"></wbr></wbr></wbr></wbr></wbr>
<wbr> <bean id="common" class="com.spring.aop.Common"/><br><wbr> <bean id="check" class="com.spring.aop.Check"/><br><wbr><wbr><wbr><br><wbr><span style="color:#ff5309"><aop:config><br><wbr><wbr><wbr> <aop:aspect id="myAop" ref="check"><br><wbr><wbr><wbr><wbr><wbr> <aop:pointcut id="target" <strong>expression="execution(* com.spring.aop.Common.execute(..))"/><br></strong><wbr><wbr><wbr><wbr><wbr> <aop:before method="checkValidity" pointcut-ref="target"/><br><wbr><wbr><wbr><wbr><wbr> <aop:after method="addLog" pointcut-ref="target"/><br><wbr><wbr><wbr> </aop:aspect><br><wbr> </aop:config><br></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></beans><br><strong>注意:</strong></wbr></wbr></wbr></wbr></wbr></wbr>
execution(* com.spring.aop.*.*(..))"/
这样写应该就可以了
这是com.aptech.jb.epet.dao.hibimpl 包下所有的类的所有方法。。
第一个*代表所有的返回值类型
第二个*代表所有的类
第三个*代表类所有方法
最后一个..代表所有的参数。
<wbr></wbr>
4.最后写一个测试:
package com.spring.aop;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationC<wbr>ontext;</wbr>
public class Client {
<wbr>public static void main(String[] args) {<br><wbr><wbr><wbr><wbr> BeanFactory factory=new ClassPathXmlApplicationC<wbr>ontext("applicationContext-aop.xml");<br><wbr><wbr><wbr><wbr> Common c=(Common) factory.getBean("common");<br><wbr><wbr><wbr><wbr> c.execute("zhengjunhua","zhengjunhua");</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr> }<br>
}<br></wbr></wbr>
注意:
需要添加三个包:spring-aop.jar , aspectjrt.jar ,aspectjweaver.jar,否则会报错。
<wbr></wbr>
输出结果:
------------------验证合法性----------------
------------------普通类----------------
------------------添加日志----------------
zhengjunhua
zhengjunhua
========checkSecurity==execute
相关推荐
在Spring XML配置文件中,我们可以定义以下元素来实现AOP配置: - `<aop:config>`:声明AOP配置。 - `<aop:pointcut>`:定义切入点表达式,例如`execution(* com.example.service.*.*(..))`表示匹配...
Spring AOP 配置事务方法 Spring AOP(Aspect-Oriented Programming,面向方面编程)是一种编程范式,它允许开发者在不修改源代码的情况下,增强和修改应用程序的行为。 Spring AOP 提供了一种灵活的方式来实现事务...
以下是一个简单的Spring AOP配置文件示例: ```xml <aop:config> <aop:aspect id="loggingAspect" ref="loggingAdvice"> <aop:before method="beforeMethod" pointcut-ref="businessMethods"/> <aop:after-...
**Spring AOP配置实例** Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的核心组件之一,它提供了一种在不修改源代码的情况下,对程序进行功能增强的技术。AOP允许开发者定义“切面”,这些...
### Spring之AOP配置文件详解 #### 一、前言 在Java开发中,Spring框架因其强大的功能和灵活的配置而被广泛应用于企业级应用的开发。其中,面向切面编程(Aspect Oriented Programming,简称AOP)是Spring框架的...
本例中,我们关注的是如何利用Spring AOP配置一个简单的切面,该切面在`DukePerformer`类的`perform`方法执行前后,插入观众的行为,如找座位、关手机、鼓掌以及不满意的反应。通过这种方式,我们将这些行为抽象为...
### Spring AOP配置详解 #### 一、Spring AOP配置概览 面向切面编程(Aspect-Oriented Programming,简称AOP)是Spring框架的重要特性之一,它通过将业务逻辑中的横切关注点(Cross-cutting Concerns)与核心业务...
2. **注解配置**:Spring 2.5引入了基于注解的AOP配置,可以在切面类上使用@Aspect注解,@Before、@After、@AfterReturning、@AfterThrowing和@Around定义通知,@Pointcut定义切点。例如: ```java @Aspect ...
**Spring AOP配置与管理** 在Java开发中,Spring框架以其强大的功能和灵活性深受开发者喜爱。其中,AOP(Aspect-Oriented Programming,面向切面编程)是Spring框架的一个重要特性,它允许开发者定义“切面”,即...
**Spring AOP 配置小节** 在Java开发中,Spring框架因其强大的功能和灵活性而备受推崇,其中AOP(面向切面编程)是其重要特性之一。AOP允许我们把关注点分离到非核心业务逻辑之外,如日志、事务管理等,使得代码...
### Spring AOP配置详解 #### 一、Spring AOP简介 Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架中的一个重要模块,它提供了强大的AOP功能支持。AOP是一种编程范式,旨在将横切关注点(如...
Spring AOP 配置 Spring AOP(Aspect-Oriented Programming)是一种面向方面编程技术,通过将关注点模块化,提高了系统的可维护性和可扩展性。下面将详细介绍 Spring AOP 的配置和实现。 一、基本概念 * 切面...
Spring aop 配置 Spring aspect 配置 Spring advisor 配置 Spring pointcut 配置
Spring AOP配置 Spring AOP的配置可以通过XML或注解方式进行: - **XML配置**: - 在`<aop:config>`标签内定义切面,`<aop:pointcut>`定义切入点,`<aop:advisor>`定义通知。 - `<aop:aspect>`标签用于定义完整...
2. **配置Spring容器**:在Spring的XML配置文件中启用AOP支持,通过`<aop:config>`标签开启,并可以定义切点(pointcut)和通知(advice)。 3. **定义切点**:使用`<aop:pointcut>`定义要拦截的方法或类。切点...
在使用Spring AOP时,我们可以通过XML配置或注解的方式来定义切面。例如,可以使用`@Aspect`注解定义一个切面类,`@Before`、`@After`等注解来声明通知,`@Pointcut`定义切点表达式。 在实际开发中,Spring AOP广泛...
Spring AOP配置 在Spring XML配置文件中,可以声明切面和通知,如下: ```xml <aop:config> <aop:aspect id="loggingAspect" ref="loggingService"> <aop:before method="logBefore" pointcut="execution(* ...
在提供的压缩包文件"springAOP"中,可能包含了以下内容: - **切面类(Aspect Class)**:包含切点和通知的Java类,可能使用了`@Aspect`注解。 - **目标类(Target Class)**:被AOP代理的对象,通常包含业务逻辑。...