Spring入门 (5)

        

Spring入门

    d.相关术语

Joinpoint(连接点):指的是被拦截的点;在Spring中,这些点指的是方法,因为Spring只支持方法类型的连接点
Pointcut(切入点):指的是被拦截的Joinpoint
Advice(通知/增强):指的是拦截Joinpoint后做的事,由前置通知,后置通知,异常通知,最终通知,环绕通知
Introduction(引介):引介是一种特殊的通知在不修改类代码的前提下, Introduction可以在运行期为类动态地添加一些方法或Field.
Target(目标对象):代理的目标对象
Weaving(织入):是指把增强应用到目标对象来创建新的代理对象的过程. spring采用动态代理织入,而AspectJ采用编译期织入和类装在期织入
Proxy(代理):一个类被AOP织入增强后,就产生一个结果代理类
Aspect(切面): 是切入点和通知(引介)的结合

    e.Spring 使用AspectJ进行AOP的开发:XML的方式

      1.导入jar包

* spring的传统AOP的开发的包
  spring-aop-4.2.4.RELEASE.jar
  com.springsource.org.aopalliance-1.0.0.jar
* aspectJ的开发包:
  com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
  spring-aspects-4.2.4.RELEASE.jar

      2.配置文件

引入AOP约束:
<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/spring-beans.xsd
http://www.springframework.org/schema/aop/spring-aop.xsd">

</beans>

      3.编写目标类

创建接口和类:
public interface OrderDao {
  public void save();
  public void update();
  public void delete();
  public void find();
}

public class OrderDaoImpl implements OrderDao {

@Override
public void save() {
  System.out.println("保存订单...");
}

@Override
public void update() {
  System.out.println("修改订单...");
}

@Override
public void delete() {
  System.out.println("删除订单...");
}

@Override
public void find() {
  System.out.println("查询订单...");
}

}

      4.编写切面类

public class MyAspectXml {
  // 前置增强
  public void before(){
    System.out.println("前置增强===========");
  }
}

      5.配置目标类和完成增强

<!-- 目标类================ -->
<bean>
</bean>

<!-- 配置切面类 -->
<bean></bean>

<!-- 进行aop的配置 -->
<aop:config>
  <!-- 配置切入点表达式:哪些类的哪些方法需要进行增强 -->
  <aop:pointcut expression="execution(* cn.itcast.spring.demo3.OrderDao.save(..))"/>
  <!-- 配置切面 -->
  <aop:aspect ref="myAspectXml">
    <aop:before method="before" pointcut-ref="pointcut1"/>
  </aop:aspect>
</aop:config>

      6.使用Junit进行测试

引入spring-test.jar

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyydyj.html