springAOP 代码示例
时间: 2023-07-02 20:12:08 浏览: 58
好的,下面是一个简单的 Spring AOP 代码示例:
假设你有一个 UserService 接口和其实现类 UserServiceImpl,其中 UserService 接口定义了一个 addUser() 方法。
1. 首先,在 UserServiceImpl 中添加 addUser() 方法的具体实现:
```
public class UserServiceImpl implements UserService {
public void addUser(User user) {
// 具体的添加用户的代码
System.out.println("Add user: " + user.getName());
}
}
```
2. 在 UserService 接口中添加 addUser() 方法的声明:
```
public interface UserService {
void addUser(User user);
}
```
3. 创建一个切面类 LogAspect,用于实现日志的记录:
```
@Aspect
@Component
public class LogAspect {
@Before("execution(* com.example.service.impl.UserServiceImpl.addUser(..)) && args(user)")
public void logBeforeAddUser(JoinPoint joinPoint, User user) {
System.out.println("Before add user: " + user.getName());
}
@AfterReturning("execution(* com.example.service.impl.UserServiceImpl.addUser(..)) && args(user)")
public void logAfterAddUser(JoinPoint joinPoint, User user) {
System.out.println("After add user: " + user.getName());
}
}
```
4. 在 Spring 配置文件中添加 AOP 相关的配置,包括切面的声明和扫描的包等信息:
```
<aop:aspectj-autoproxy/>
<context:component-scan base-package="com.example"/>
```
通过上述步骤,我们就完成了一个简单的 Spring AOP 的示例。当调用 UserServiceImpl 的 addUser() 方法时,LogAspect 中的 logBeforeAddUser() 和 logAfterAddUser() 方法会自动被调用,从而实现了日志的记录。