第一种:注解配置AOP
  注解配置AOP(使用 AspectJ 类库实现的),大致分为三步:
  1. 使用注解@Aspect来定义一个切面,在切面中定义切入点(@Pointcut),通知类型(@Before, @AfterReturning,@After,@AfterThrowing,@Around).
  2. 开发需要被拦截的类。
  3. 将切面配置到xml中,当然,我们也可以使用自动扫描Bean的方式。这样的话,那交由Spring AoP容器管理。
  另外需要引用 aspectJ 的 jar 包: aspectjweaver.jar aspectjrt.jar
  实例:
User.java
package com.bjsxt.model;
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
/**
*接口
*/
package com.bjsxt.dao;
import com.bjsxt.model.User;
public interface UserDAO {
public void save(User user);
}
  实现接口:
  package com.bjsxt.dao.impl;
  import org.springframework.stereotype.Component;
  import com.bjsxt.dao.UserDAO;
  import com.bjsxt.model.User;
  @Component("u")
  public class UserDAOImpl implements UserDAO {
  public void save(User user) {
  System.out.println("user save11d!");
  /*throw new RuntimeException("exception");*/ //抛异常
  }
  }