org.springframework spring-context 5.3.8 |
public class UserService { public UserService() { System.out.println("UserService()......"); } public void add() { System.out.println("UserService.add()......"); } } |
public class Test { public static void main(String[] args) { //实例化ClassPathXmlApplicationContext对象,配置文件作为参数 ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); //上线文对象 getBean方法获取配置bean对象UserService UserService userService = context.getBean(UserService.class); //调用UserService的add方法 userService.add(); } } |
| 此处的名称中由于有特殊字符,只能使用name属性。 |
public void init() { System.out.println("UserService.init()......"); } |
propertiesContext.xml |
@Component //把该类纳入到spring容器中管理@Aspect //代表该类是一个切面类public class AnnotationTransactionPrint { //声明切入点,切入点表达式(只对OrderServiceImpl这个类所有的方法进行aop) @Pointcut("execution(* com.tjetc.service.impl.OrderServiceImpl.*(..))") //切入点签名:由一个名字和多个参数组成,必须返回void private void anyMethod() { } //前置通知,使用切入点签名 @Before("anyMethod()") public void doBefore() { System.out.println("前置通知...."); } //后置通知,使用切入点签名 @AfterReturning("anyMethod()") public void doAfterReturning() { System.out.println("后置通知....."); } //异常通知,使用切入点签名 @AfterThrowing("anyMethod()") public void doAfterThrowing() { System.out.println("异常通知...."); } //最终通知,使用切入点签名 @After("anyMethod()") public void doAfter() { System.out.println("最终通知......."); } //环绕通知,使用切入点签名 /*@Around("anyMethod()")*/ public Object doRound(ProceedingJoinPoint pjp) throws Throwable { try { System.out.println("环绕前置通知....."); Object result = pjp.proceed(); System.out.println("环绕后置通知....."); return result; } catch (Exception e) { System.out.println("环绕异常通知......"); throw e; } finally { System.out.println("环绕最终通知...."); } } } |
@Service //纳入spring的管理public class OrderServiceImpl { public void add() { System.out.println("PersonService.add()..."); } public void update() { System.out.println("PersonService.update()..."); } public void del() { System.out.println("PersonService.del()..."); throw new RuntimeException("出错了...."); } } |
public class TestAnnotationAop { public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); OrderServiceImpl orderService = context.getBean(OrderServiceImpl.class); orderService.add(); orderService.update(); orderService.del(); } } |
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |