spring实验2

实验二SpringAOP的使用

实验目的:

  1. 了解AOP的概念和作用
  2. 理解AOP中的切面以及通知
  3. 熟悉Spring中两种动态代理方式的区别
  4. 掌握基于代理类的AOP实现

实验类型:

验证性

实验学时:

2学时

实验内容:

实验任务1:创建项目,导入相关依赖

<dependencies>
        <dependency>
            <groupId>aopalliance</groupId>
            <artifactId>aopalliance</artifactId>
            <version>1.0</version>
        </dependency>
        <!--spring包-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.8.13</version>
        </dependency>
    </dependencies>

实验任务2:创建目标接口和实现类

public interface UserDao {
    public void addUser();
    public void deleteUser();
}

public interface ScoreDao {
    public void addScore();
    public void deleteScore();
}

public interface StudentDao {
    public void addStudent();
    public void deleteStudent();
}
@Repository("scoreDao")
public class ScoreDapImpl implements ScoreDao {
    public void addScore() {
        System.out.println("添加成绩");
    }

    public void deleteScore() {
        System.out.println("====成绩管理模块:删除成绩====");
    }
}

@Repository("studetnDao")
public class StudentDaoImpl implements StudentDao {
    public void addStudent() {
        System.out.println("添加学生信息");
    }

    public void deleteStudent() {
        System.out.println("====学生管理模块:删除学生信息====");
    }
}

@Repository("userDao")
public class UserDaoImpl implements UserDao {
    public void addUser() {
        System.out.println("添加用户");
    }

    public void deleteUser() {
        System.out.println("====用户管理模块:删除用户====");
    }
}

实验任务3:创建切面类

public class MyAspect{

    public void before(){
        System.out.println("方法执行前");
    }
    public void after(){
        System.out.println("方法执行后");
    }

}

实验任务4:更改spring配置文件

<!--目标-->
    <bean id="userDao" class="com.hxci.aop.UserDaoImpl"/>
    <bean id="scoreDao" class="com.hxci.aop.ScoreDapImpl"/>
    <bean id="studentDao" class="com.hxci.aop.StudentDaoImpl"/>

    <!--切面-->
     <bean id="myAspect" class="com.hxci.bean.MyAspect"/>
    <!--代理-->
     <aop:config>
         <!--自定义切面 ref要引用的类-->
         <aop:aspect ref="myAspect">
             <!--切入点-->
             <aop:pointcut id="point" expression="execution(* com.hxci.aop.UserDaoImpl.*(..))"/>
             <!--通知-->
             <aop:before method="before" pointcut-ref="point"/>
             <aop:after method="after" pointcut-ref="point"/>
         </aop:aspect>
     </aop:config>

实验任务5:编写测试类,进行测试

public class TestXml {

    public static void main(String[] args) {
        ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
        //1.从spring容器获得内容
        UserDao userDao=context.getBean("userDao",UserDao.class);
        //2.执行方法
        userDao.deleteUser();
    }
}

总结:AOP是面向切面编程主要用于记录日志。

                

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值