java aop学习
package cn.pg.service; public interface UserService { public void add(); public void edit(); public void delete(); public void select(); }
package cn.pg.service; public class UserImpl implements UserService { public void add() { System.out.println("增加用户"); } public void edit() { System.out.println("修改用户"); } public void delete() { System.out.println("删除用户"); } public void select() { System.out.println("查找用户"); } }
package cn.pg.log; import java.lang.reflect.Method; import org.springframework.aop.MethodBeforeAdvice; public class AfterLog implements MethodBeforeAdvice { public void before(Method method, Object[] args, Object target) throws Throwable { // TODO 自动生成的方法存根 System.out.println(target.getClass().getName()+"的11"+method.getName()+"被执行"); } }
package cn.pg.log; import java.lang.reflect.Method; import org.springframework.aop.MethodBeforeAdvice; public class Log implements MethodBeforeAdvice { public void before(Method method, Object[] args, Object target) throws Throwable { // TODO 自动生成的方法存根 System.out.println(target.getClass().getName()+"的"+method.getName()+"被执行"); } }
package cn.pg.diy; public class DiyPoin { public void after() { System.out.println("执行操作之前"); } public void before() { System.out.println("执行操作之后"); } }
package cn.pg.maven_three; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import cn.pg.service.UserService; public class Mytest { public static void main(String[] args) { ApplicationContext context=new ClassPathXmlApplicationContext("app.xml"); UserService userImpl=(UserService)context.getBean("userService"); userImpl.add(); userImpl.select(); } }
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.pg</groupId> <artifactId>maven-three</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>maven-three</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.8.RELEASE</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.9.4</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> </dependency> </dependencies> </project>
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd "> <bean id="userService" class="cn.pg.service.UserImpl"></bean> <bean id="log" class="cn.pg.log.Log"></bean> <bean id="afterLog" class="cn.pg.log.AfterLog"></bean> <!-- 配置aop --> <!--<aop:config>--> <!-- 切入点 --> <!--<aop:pointcut expression="execution(* cn.pg.service.UserImpl.*(..))" id="pointcut"/>--> <!-- 执行环绕 --> <!--<aop:advisor advice-ref="log" pointcut-ref="pointcut"/>--> <!--<aop:advisor advice-ref="afterLog" pointcut-ref="pointcut"/>--> <!--</aop:config>--> <bean id="diy" class="cn.pg.diy.DiyPoin"></bean> <aop:config> <!-- 自定义切面 --> <aop:aspect ref="diy"> <!-- 切入点 --> <aop:pointcut expression="execution(* cn.pg.service.UserImpl.*(..))" id="pointcut"/> <aop:after method="after" pointcut-ref="pointcut"/> <aop:before method="before" pointcut-ref="pointcut"/> </aop:aspect> </aop:config> </beans>
不逼一下自己,都不知道自己有多优秀!!!

浙公网安备 33010602011771号