基于非标注的aop编程

第一步:创建一个项目导入Spring相应的配置文件(AOP、IOCjar包)(此处省略,相应的jar包可在我的下载资源中下载)

第二步:编写一个UserService类,其中定义一个用户登录的方法,方法内容如下:

public void userLogin() {
        System.out.println("用户登录中....");
    }

第三步:编写一个切面类,主要用定义切面方法(具有共通业务逻辑的方法),此处的方法为在调用目标对象方法之前获取当前系统时间。切面类的方法如下:

 public void beforeMethodLog() {
        Date d = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        String date = sdf.format(d);
        System.out.println("当前系统时间是:"+date);
   }

第四步:在配置文件中编写相应的配置,主要有三个方面:

      1、目标对象组件

      2、切面对象组件

      3、配置AOP 实现在目标对象方法调用之前获取当前系统时间

具体配置如下:

    <!-- 目标对象bean组件 -->
    <bean id="userService" class="cn.ww.service.UserService"></bean>
    <!-- 切面对象bean组件 -->
    <bean id="logAspect" class="cn.ww.aspect.LogAspect"></bean>
    <!-- aop的配置 切面通知切点 -->
    <aop:config>
         <!-- 切点表达式,此表达式表示定位到目标对象的用户登录的方法 -->
        <aop:pointcut expression="execution(public void userLogin())" id="login"/>
        <aop:aspect ref="logAspect">
            <aop:before method="beforeMethodLog" pointcut-ref="login"/>
        </aop:aspect>
    </aop:config>

注意事项:

  1、切点表达式可以直接写在<aop:before中,如<aop:before method="beforeMethodLog" point="excution(public void userLogin())" />

    2、切点表达式中的方法返回值跟方法名是必须要有的,其他的可以没有。可以使用通配符 *。当然还有其他的一些实现细节,此处不一一说明!!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值