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()=====
分享到:
相关推荐
在IT行业中,Spring框架是Java企业级应用开发的首选,其强大的功能之一就是AOP(面向切面编程)。本文将详细解析Spring AOP的三种实现方式,帮助你深入理解这一重要概念。 首先,理解AOP的基本概念至关重要。AOP是...
Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的重要组成部分,它扩展了传统的面向对象编程,使得开发者可以方便地实现横切关注点,如日志、事务管理、性能监控等。在Spring中,AOP通过代理...
### 面向切面编程(AOP) 面向切面编程(Aspect-Oriented Programming,简称AOP)是一种编程范式,它旨在提高模块化程度,通过将横切关注点(cross-cutting concerns)从业务逻辑中分离出来,使得代码更加清晰、...
Spring Boot AOP(面向切面编程)是一种强大的设计模式,它允许我们在不修改现有代码的情况下,插入额外的功能或监控代码。在Spring框架中,AOP主要用于日志记录、事务管理、性能统计等场景。本示例是关于如何在...
**Spring AOP切面编程简介** 在Java世界中,面向切面编程(Aspect-Oriented Programming,简称AOP)是一种编程范式,它允许我们分离关注点,将横切关注点(如日志、事务管理、性能监控等)与业务逻辑代码解耦。...
在Java世界中,Spring框架以其强大的功能和灵活性深受开发者喜爱,尤其在面向切面编程(AOP)方面,Spring提供了非常全面的支持。AOP是一种编程范式,它允许程序员定义“切面”,这些切面可以封装关注点,如日志、...
面向切面编程(Aspect-Oriented Programming,AOP)是一种编程范式,旨在将关注点分离,使得系统中的交叉关注点,如日志、事务管理、权限检查等,可以从核心业务逻辑中解耦出来。在Java领域,Spring框架是AOP的典型...
Spring AOP,全称Spring Aspect-Oriented Programming(面向切面编程),是Spring框架的重要组成部分,它提供了一种模块化和声明式的方式来处理系统中的交叉关注点,如日志、事务管理、性能监控等。在Spring AOP中,...
在Spring框架中,AOP(Aspect Oriented Programming,面向切面编程)是一种强大的设计模式,它允许程序员将关注点分离,比如日志、事务管理等,从核心业务逻辑中解耦出来。本篇文章将深入探讨如何通过Spring的静态...
在Java开发领域,Spring框架是应用最广泛的轻量级框架之一,它提供了众多功能,包括依赖注入、面向切面编程(AOP)等。本文将详细介绍在使用Spring AOP时所需的两个关键jar包:aopalliance-1.0.jar和aspectjweaver-...
Spring AOP(面向切面编程)是Java开发中Spring框架的核心特性之一,它提供了一种在不修改源代码的情况下,对程序进行功能增强的技术。在SSH(Struts、Spring、Hibernate)经典企业级开发框架中,Spring AOP扮演着至...
在 Spring 框架中,AOP(面向切面编程)是一种强大的设计模式,它允许开发者定义“切面”,这些切面可以封装跨多个对象的行为或责任。Spring AOP 提供了在运行时实现切面的功能,无需修改现有代码。本篇文章将详细...
在Java开发领域,Spring框架是不可或缺的一个部分,尤其在实现面向切面编程(Aspect-Oriented Programming,简称AOP)时。AOP是一种编程范式,它允许开发者定义“横切关注点”,如日志、事务管理等,将这些关注点与...
Spring AOP(面向切面编程)是Spring框架中的一个重要组件,它允许开发者在不修改源代码的情况下,通过插入额外的逻辑来扩展或增强应用程序的行为。AOP的核心概念是切面(Aspect),它封装了横切关注点,如日志、...
Spring的核心特性包括轻量级、依赖注入(DI/IOC)、面向切面编程(AOP)等,这使得它成为当今最流行的企业级Java开发框架之一。 #### 二、Spring的轻量级特性 - **非侵入性**:基于Spring开发的应用中的对象可以不...
Spring AOP,即面向切面编程,是Spring框架的核心组件之一,它允许程序员在不修改原有业务代码的情况下,对程序进行功能增强。本篇文章将详细阐述Spring AOP的基本概念、种类、代理原理、通知类型以及切入点,帮助你...
在IT行业中,Spring AOP(面向切面编程)是一个重要的模块,它允许开发者在不修改源代码的情况下,通过“切面”来实现关注点的分离。AOP联盟(AOP Alliance)提供了一套通用的接口,使得不同的AOP框架可以进行互操作...
在Spring框架中,AOP(面向切面编程)是一种强大的设计模式,它允许开发者将关注点分离,将横切关注点(如日志、事务管理)从核心业务逻辑中解耦出来。本篇将深入探讨如何使用Spring的静态配置文件结合CGLIB库来实现...
Spring AOP(面向切面编程)是Spring框架的重要组成部分,它提供了一种在不修改源代码的情况下,对程序进行功能增强的技术。在Java应用程序中,AOP常用于日志记录、事务管理、性能监控等场景,它通过定义切面...