• Spring入门---示例五---通过程序代码实现AOP【第二天】


    Spring通过程序代码实现AOP示例

    一、编写用户DAO类:

     1 package test5.aop.program;
     2 
     3  
     4 
     5 //用户DAO类
     6 
     7 public class UserDao {
     8 
     9 public void addUser(String uname,String upwd){
    10 
    11 System.out.println("addUser()");
    12 
    13 }
    14 
    15 public void deleteUser(String uname) {
    16 
    17 System.out.println("deleteUser()");
    18 
    19 }
    20 
    21 }
    22 
    23  

    二、编写检查用户安全的类:

     1 package test5.aop.program;
     2 
     3  
     4 
     5 import org.aspectj.lang.annotation.After;
     6 
     7 import org.aspectj.lang.annotation.Pointcut;
     8 
     9  
    10 
    11 //检查用户安全的类
    12 
    13 public class CheckSecurity {
    14 
    15 /**声明一个切入点 当调用以add以及delete串开始的函数时**/
    16 
    17 @Pointcut("execution(* add*(..)||execution(* delete*(..)))")
    18 
    19 private void allAddMethod(){}
    20 
    21  
    22 
    23 @After("allAddMethod()")
    24 
    25 private void check(){
    26 
    27 System.out.println("check()");
    28 
    29 }
    30 
    31 }

    三、改写Spring配置文件:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 
     3 <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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
     4 
     5     <!-- 以下是设置自动AOP。即通过程序设置AOP -->
     6 
     7         <aop:aspectj-autoproxy/>
     8 
     9         <bean name="check1" class="test5.aop.program.CheckSecurity"/>
    10 
    11         <bean name="dao1" class="test5.aop.program.UserDao"/>
    12 
    13 </beans>

    四、编写测试类:

     1 package test5;
     2 
     3  
     4 
     5 import org.springframework.beans.factory.BeanFactory;
     6 
     7 import org.springframework.context.support.ClassPathXmlApplicationContext;
     8 
     9  
    10 
    11 import test5.aop.program.UserDao;
    12 
    13  
    14 
    15 public class Test {
    16 
    17 @SuppressWarnings("resource")
    18 
    19 public static void main(String[] args) {
    20 
    21 BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");
    22 
    23 UserDao dao =(UserDao)factory.getBean("dao1");
    24 
    25 dao.addUser("zhou", "1234");
    26 
    27 }
    28 
    29 }

     在编写过程中,配置文件由于没改和本文一致,而是包含前面写的代码,最后出现调用前面写的示例的代码,请思考,

    尝试将本文提到的配置加入前面的项目。

  • 相关阅读:
    node连接数据库(express+mysql)
    Apache与Tomcat有什么关系和区别
    tomcat部署简单的html静态网页
    Vue项目webpack打包部署到服务器
    windows下vue+webpack前端开发环境搭建及nginx部署
    DIV 边框重叠 像素变粗 解决办法
    基于iscroll实现下拉和上拉刷新
    css图片居中(水平居中和垂直居中)
    nodejs分页类
    事件--键盘事件
  • 原文地址:https://www.cnblogs.com/ciscolee/p/10938433.html
Copyright © 2020-2023  润新知