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.0modelVersion>
<groupId>cn.pggroupId>
<artifactId>maven-threeartifactId>
<version>0.0.1-SNAPSHOTversion>
<packaging>jarpackaging>
<name>maven-threename>
<url>http://maven.apache.orgurl>
<properties>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
properties>
<dependencies>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-contextartifactId>
<version>5.2.8.RELEASEversion>
dependency>
<dependency>
<groupId>org.aspectjgroupId>
<artifactId>aspectjweaverartifactId>
<version>1.9.4version>
dependency>
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>3.8.1version>
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>
<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>