`
wlh269
  • 浏览: 455736 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring(九) AOP(二)spring面向切面编程--采用静态配置文件的方式

阅读更多
Spring对AOP的支持(采用静态配置文件的方式

1、spring依赖库
* SPRING_HOME/dist/spring.jar
* SPRING_HOME/lib/commons-logging.jar
* SPRING_HOME/lib/log4j-1.2.14.jar
* SPRING_HOME/lib/aspectj/*.jar

2、配置方法
<aop:config>
<aop:aspect id="securityAspect" ref="securityHandler">
<aop:pointcut id="allAddMethod" expression="execution(* com.bjsxt.spring.*.add*(..)) || execution(* com.bjsxt.spring.*.del*(..))"/>
<aop:before pointcut-ref="allAddMethod" method="checkSecurity"/>
</aop:aspect>
</aop:config>
    

详细代码如下:

1.接口:
package com.wlh.spring;

public interface UserManager {
  public void addUser(String username,String pwd);
  public void delUser(int id);
  public void findUser(int id);
  public void updateUser(int id ,String username,String pwd);
}



2.目标类(接口实现类):
package com.wlh.spring;

public class UserManagerImpl implements UserManager {

	public void addUser(String username, String pwd) {
      System.out.println("====addUser()=====");
	}

	public void delUser(int id) {
		 System.out.println("====delUser()=====");
	}

	public void findUser(int id) {
		 System.out.println("====findUser()=====");
	}

	public void updateUser(int id, String username, String pwd) {
		 System.out.println("====updateUser()=====");
	}

}



3.Aspect类:

package com.wlh.spring;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

public class SecurityHandler  {

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

	

}




4.配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>

<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="userManager" class="com.wlh.spring.UserManagerImpl"/>
  
    <bean id="securityHandler" class="com.wlh.spring.SecurityHandler"/><!-- 切面类 -->
   <aop:config>
      <!--Aspect由Pointcut和Advice组成
  <aop:aspect id="securityAspect" ref="securityHandler"><!-- 引用切面类 -->
          <!-- 声明Pointcut--表达式方法声明匹配被切入的类及其方法 -->
     <aop:pointcut id="applyMethod" expression="execution(* com.wlh.spring.*.add*(..)) || execution(* com.wlh.spring.*.del*(..))"/>
  <!-- 声明Advice--即,切面类的要切入方法 -->
  <aop:before pointcut-ref="applyMethod" method="checkSecurity"/>    
</aop:aspect>  

</aop:config>

</beans>

5.客户端调用:
package client;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.wlh.spring.UserManager;
public class Client {
	
public static void main(String []args){
	
	BeanFactory factory=new ClassPathXmlApplicationContext("applicationContext.xml");
	UserManager userManager=(UserManager) factory.getBean("userManager");
	userManager.addUser("wlh","wlh");
	
}
}


6:输出结果:
-----checkSecurity-------
====addUser()=====
分享到:
评论

相关推荐

    Spring AOP面向切面三种实现

    在IT行业中,Spring框架是Java企业级应用开发的首选,其强大的功能之一就是AOP(面向切面编程)。本文将详细解析Spring AOP的三种实现方式,帮助你深入理解这一重要概念。 首先,理解AOP的基本概念至关重要。AOP是...

    spring AOP切面编程

    Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的重要组成部分,它扩展了传统的面向对象编程,使得开发者可以方便地实现横切关注点,如日志、事务管理、性能监控等。在Spring中,AOP通过代理...

    面向切面编程

    ### 面向切面编程(AOP) 面向切面编程(Aspect-Oriented Programming,简称AOP)是一种编程范式,它旨在提高模块化程度,通过将横切关注点(cross-cutting concerns)从业务逻辑中分离出来,使得代码更加清晰、...

    spring-boot aop

    Spring Boot AOP(面向切面编程)是一种强大的设计模式,它允许我们在不修改现有代码的情况下,插入额外的功能或监控代码。在Spring框架中,AOP主要用于日志记录、事务管理、性能统计等场景。本示例是关于如何在...

    Spring AOP切面编程简介

    **Spring AOP切面编程简介** 在Java世界中,面向切面编程(Aspect-Oriented Programming,简称AOP)是一种编程范式,它允许我们分离关注点,将横切关注点(如日志、事务管理、性能监控等)与业务逻辑代码解耦。...

    Spring使用AOP的三个jar包

    在Java世界中,Spring框架以其强大的功能和灵活性深受开发者喜爱,尤其在面向切面编程(AOP)方面,Spring提供了非常全面的支持。AOP是一种编程范式,它允许程序员定义“切面”,这些切面可以封装关注点,如日志、...

    AOP面向切面编程的JavaScript实现

    面向切面编程(Aspect-Oriented Programming,AOP)是一种编程范式,旨在将关注点分离,使得系统中的交叉关注点,如日志、事务管理、权限检查等,可以从核心业务逻辑中解耦出来。在Java领域,Spring框架是AOP的典型...

    springAop默认代理方式.zip

    Spring AOP,全称Spring Aspect-Oriented Programming(面向切面编程),是Spring框架的重要组成部分,它提供了一种模块化和声明式的方式来处理系统中的交叉关注点,如日志、事务管理、性能监控等。在Spring AOP中,...

    spring学习之六“AOP使用spring静态配置文件的实现”

    在Spring框架中,AOP(Aspect Oriented Programming,面向切面编程)是一种强大的设计模式,它允许程序员将关注点分离,比如日志、事务管理等,从核心业务逻辑中解耦出来。本篇文章将深入探讨如何通过Spring的静态...

    Spring AOP需要的jar

    在Java开发领域,Spring框架是应用最广泛的轻量级框架之一,它提供了众多功能,包括依赖注入、面向切面编程(AOP)等。本文将详细介绍在使用Spring AOP时所需的两个关键jar包:aopalliance-1.0.jar和aspectjweaver-...

    spring_AOP.rar_876.aop_java aop_spring_aop

    Spring AOP(面向切面编程)是Java开发中Spring框架的核心特性之一,它提供了一种在不修改源代码的情况下,对程序进行功能增强的技术。在SSH(Struts、Spring、Hibernate)经典企业级开发框架中,Spring AOP扮演着至...

    Spring AOP依赖jar包

    在 Spring 框架中,AOP(面向切面编程)是一种强大的设计模式,它允许开发者定义“切面”,这些切面可以封装跨多个对象的行为或责任。Spring AOP 提供了在运行时实现切面的功能,无需修改现有代码。本篇文章将详细...

    Spring3.0AOP所需jar包

    在Java开发领域,Spring框架是不可或缺的一个部分,尤其在实现面向切面编程(Aspect-Oriented Programming,简称AOP)时。AOP是一种编程范式,它允许开发者定义“横切关注点”,如日志、事务管理等,将这些关注点与...

    Spring_AOP

    Spring AOP(面向切面编程)是Spring框架中的一个重要组件,它允许开发者在不修改源代码的情况下,通过插入额外的逻辑来扩展或增强应用程序的行为。AOP的核心概念是切面(Aspect),它封装了横切关注点,如日志、...

    Spring4Ioc-Aop

    Spring的核心特性包括轻量级、依赖注入(DI/IOC)、面向切面编程(AOP)等,这使得它成为当今最流行的企业级Java开发框架之一。 #### 二、Spring的轻量级特性 - **非侵入性**:基于Spring开发的应用中的对象可以不...

    Spring_AOP_学习小结 Spring_AOP_学习小结 Spring_AOP_学习小结

    Spring AOP,即面向切面编程,是Spring框架的核心组件之一,它允许程序员在不修改原有业务代码的情况下,对程序进行功能增强。本篇文章将详细阐述Spring AOP的基本概念、种类、代理原理、通知类型以及切入点,帮助你...

    spring aop_aopalliance.jar_aspectjweaver.jar

    在IT行业中,Spring AOP(面向切面编程)是一个重要的模块,它允许开发者在不修改源代码的情况下,通过“切面”来实现关注点的分离。AOP联盟(AOP Alliance)提供了一套通用的接口,使得不同的AOP框架可以进行互操作...

    spring学习之七“AOP使用spring静态配置文件(CGLIB)”

    在Spring框架中,AOP(面向切面编程)是一种强大的设计模式,它允许开发者将关注点分离,将横切关注点(如日志、事务管理)从核心业务逻辑中解耦出来。本篇将深入探讨如何使用Spring的静态配置文件结合CGLIB库来实现...

    spring aop支持jdk1.7的jar

    Spring AOP(面向切面编程)是Spring框架的重要组成部分,它提供了一种在不修改源代码的情况下,对程序进行功能增强的技术。在Java应用程序中,AOP常用于日志记录、事务管理、性能监控等场景,它通过定义切面...

Global site tag (gtag.js) - Google Analytics