zoukankan      html  css  js  c++  java
  • aspectj xml

    1.接口和类

    1.1 ISomeService 接口

    public interface ISomeService {
    
        public void doSome();
    
        public void dade();
    }

    1.2  SomeService类

    public class SomeService implements ISomeService {
        //核心业务
        public void doSome(){
            System.out.println("我们都要找到Java开发工作,薪资6,7,8,9,10K");
        }
    
        public void dade() {
            //异常
            //int sun=5/0;
            System.out.println("++++++++++++++de+++++++++++++");
        }
    
    }

    1.3  MyAspect 类

    public class MyAspect {
    
        //前置增强
        public void before(){
            System.out.println("=====before========");
        }
        //后置增强
        public void afterReturing(){
            System.out.println("=====after========");
        }
        //后置增强   目标方法的返回值
        public void afterReturing(String result){
            System.out.println("=====后置通知方法 result========"+result);
        }
        //环绕通知
        public Object around(ProceedingJoinPoint pjp) throws Throwable {
            System.out.println("目标方法执行前执行");
            Object result = pjp.proceed();
            System.out.println("目标方法执行后执行");
            String temp=null;
            if (result!=null) {
                temp = (String) result;
                temp=temp.toUpperCase();
            }
            return temp;
        }
        //异常通知
        public void afterThrowing(){
            System.out.println("异常通知");
        }
        //异常通知
        public void afterThrowing(Exception ex){
            System.out.println("异常通知 ex="+ex.getMessage());
        }
    
        //最终通知
        public void after(){
            System.out.println("最终通知");
        }
    
    }

    2.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:p="http://www.springframework.org/schema/p"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
            http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context.xsd
    ">
        <!--01.目标对象-->
        <bean id="someService" class="cn.bdqn.spring18.SomeService"></bean>
    
        <!--02.增强类-->
        <bean id="aspect" class="cn.bdqn.spring18.MyAspect"></bean>
    
        <!--aop-->
        <aop:config>
            <!--设置一个切点-->
            <aop:pointcut id="mycut" expression="execution(* *..spring18.*.*(..))"></aop:pointcut>
            <aop:aspect ref="aspect">
                <aop:before method="before" pointcut-ref="mycut"></aop:before>
                <aop:after-returning method="afterReturing" pointcut-ref="mycut"></aop:after-returning>
                <aop:after-returning method="afterReturing(java.lang.String)" returning="result" pointcut-ref="mycut"></aop:after-returning>
                <aop:around method="around" pointcut-ref="mycut"></aop:around>
                <aop:after-throwing method="afterThrowing" pointcut-ref="mycut"></aop:after-throwing>
               <aop:after-throwing method="afterThrowing(java.lang.Exception)" throwing="ex" pointcut-ref="mycut"></aop:after-throwing>
                <aop:after method="after" pointcut-ref="mycut"></aop:after>
            </aop:aspect>
        </aop:config>
    </beans>

    3.测试类

     //aspectj xml
        @Test
        public void test20(){
            ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContextspring16.xml");
            ISomeService service = (ISomeService) ctx.getBean("someService");
            service.doSome();
            service.dade();
        }
  • 相关阅读:
    solr一些错误
    maven聚合工程之找不到符号,类等错误
    图片服务器搭建及上传测试,网络配置问题(errno: 111)
    安装Nginx,make时报错:/usr/bin/ld: cannot find -lfdfsclient或者类似找不到-lxxx
    关于PCA算法的学习
    生物信息及开发常用的Linux命令
    05.课程主页面三个接口开发
    04.增加media文件配置
    3.课程相关5张表设计
    2.增加抽象基类
  • 原文地址:https://www.cnblogs.com/qjt970518--/p/7293925.html
Copyright © 2011-2022 走看看