接口:

package com.jzq.spring;

public interface UserManager {

public void addUser(String username,String password);
 
 public void deleteUser(int id);
 
 public void modifyUser(int id,String username,String password);
 
 public String findUserById(int id);
 
}

实现:

package com.jzq.spring;

public class UserManagerImpl implements UserManager {

@Override
 public void addUser(String username, String password) {
    
  System.out.println("------UserManagerImpl.addUser()-----");
 }

@Override
 public void deleteUser(int id) {
        System.out.println("--------UserManagerImpl.deleteUser()-------");
 }

@Override
 public String findUserById(int id) {
     System.out.println("--------UserManagerImpl.findUser()----------");
  return null;
 }

@Override
 public void modifyUser(int id, String username, String password) {
        System.out.println("--------deleteUser()-------");
 }

}

切面:

package com.jzq.spring;

public class SecurityHandler {

private void checkSecurity()
 {
  System.out.println("---------checkSecurity()------------");
 }

}

配置:

<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:aop="http://www.springframework.org/schema/aop"
      xmlns:tx="http://www.springframework.org/schema/tx"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">

<bean id="securityHandler" class="com.jzq.spring.SecurityHandler"/>
     <bean id="userManager" class="com.jzq.spring.UserManagerImpl"/>
     <!-- aop的配置 -->
     <aop:config>
        <!-- 定义切面 -->
        <aop:aspect id="security" ref="securityHandler">
            <!-- 定义切面中的pointcut -->
            <aop:pointcut id="allAddMethod" expression="execution(* add*(..))"/>
            <!-- 指定advice及应用到哪个pointcut -->
            <aop:before method="checkSecurity" point-ref="allAddMethod"/>
        </aop:aspect>
     </aop:config>
</beans>

转载于:https://www.cnblogs.com/jinzhengquan/archive/2011/02/22/1961661.html

采用静态配置文件方式实现AOP相关推荐

  1. Java企业开发学习笔记(1.5.1)采用配置方式使用AOP

    该文章主要为完成实训任务,详细实现过程及结果见[http://t.csdn.cn/FBkpc] 文章目录 一.采用配置方式使用AOP 1.1 创建所需子包 1.2 创建杀龙任务类 1.3 创建勇敢骑士 ...

  2. 单实例的写法最保险的写法应采用静态方式的预生成 ,不要用双重检查的懒汉模式等,JDK1.6之后加了volatile也要谨慎,需要考证是否解决这个问题

    单实例的写法最保险的写法应采用静态方式的预生成  ,不要用双重检查的懒汉模式等,JDK1.6之后加了volatile也需要考证是否解决了这个问题 推荐写法案例一 /*以单例模式启动*/     pri ...

  3. SSM框架笔记07:初探Spring——采用XML配置文件与注解方式

    初探Spring--采用XML配置文件与注解方式   在上一讲的项目基础上继续.   1.将xmlconfig包里的两个骑士类和两个任务类拷贝到xml_annotation包 2.修改SlayDrag ...

  4. 第五章 Spring进阶-注解方式实现AOP(1)

    <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 徒弟:师傅,我 ...

  5. 堆/栈/动态存储方式/静态存储方式

    动态存储方式 所谓动态存储方式是指在程序运行期间根据需要进行动态的分配存储空间的方式.动态存储变量是在程序执行过程中,使用它时才分配存储单元, 使用完毕立即释放. 典型的例子是函数的形式参数,在函数定 ...

  6. SSM框架笔记06:初探Spring——采用XML配置方式

    初探Spring--采用XML配置方式   Spring框架是一个轻量级的企业级开发的一站式解决方案.所谓解决方案就是可以基于Spring解决Java EE开发的所有问题.Spring框架主要提供了I ...

  7. (转)使用Spring的注解方式实现AOP入门

    http://blog.csdn.net/yerenyuan_pku/article/details/52865330 首先在Eclipse中新建一个普通的Java Project,名称为spring ...

  8. mysql多实例(多个配置文件方式)

    CleverCode最近在研究MySQL的多实例,发现有两种方式:           第一种是使用多个配置文件启动不同的进程来实现多实例.这种方式的优势逻辑简单,配置简单,缺点是管理起来不太方便. ...

  9. spark连接Oracle数据库,Spark通过jdbc采用分区的方式从oracle读数据

    spark通过jdbc可以从oracle中直接读取数据,返回dataframe.有时由于数据量较大,我们可以采用分区方式通过jdbc多线程并行从oracle中读取数据. - oracle中的数据如下 ...

最新文章

  1. 我终于决定要放弃 okhttp、httpClient,选择了这个牛逼的神仙工具!贼爽!
  2. ab plc编程软件_三菱PLC原装和高仿怎么区分?PLC仿真软件和编程软件一样吗?
  3. 以太坊Geth的dev模式的使用过程
  4. leetcode 1203. 项目管理(拓扑排序)
  5. 个人站立会议(11月16日)
  6. ggeditor推动_谁推动了特殊招聘的文化?
  7. Spark入门实战系列--4.Spark运行架构
  8. 你必须要知道的数据备份工具rsync
  9. Ubuntu Linux 下 Ffmpeg 及 Mencoder 安装使用小结
  10. 四川大学计算机学院优秀毕业论文,(完整版)四川大学本科_毕业论文(设计)_有关规定...
  11. 淘宝双十一喵果总动员之喵树大挑战玩法攻略
  12. 怎样查找计算机的ip mac地址,如何通过mac地址查ip,教您Mac怎么查看ip地址
  13. python turtle 乌龟赛跑_海龟快跑,turtle碰撞检测小游戏
  14. 计算机术语IP,什么是ip?网络ip和网络用语IP的含义!
  15. Windows下批处理if exist用法的注意事项
  16. 【Windows10下.sh文件的运行】‘bash’ is not recognized as an internal or external command
  17. 怎么做表情包微信gif?好用的制作方法介绍
  18. Feedforward ANC 主动降噪原理
  19. MACD判断定背离,底背离
  20. “实践与理论相结合”是开发人员的学习之道

热门文章

  1. 即时通讯 IM 开发指南 1:如何进行技术选型
  2. IDEA配置Struts框架
  3. LNMP服务跨省迁移的解决方案
  4. JavaUtils - 文件操作
  5. c++ builder 中的 XMLDocument 类详解(2) - 记要
  6. 新书《活用UML-需求分析高手》详细大纲(持续更新中)
  7. 笔记本键盘维修[原创]
  8. 内存双通道不兼容举例以及解决方案.
  9. 人工玻璃体-技术指标汇总(持续更新中)
  10. ubuntu20.04安装搜狗输入法(社区版+个人版)