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

spring aop 功能实例简述

    博客分类:
  • ssh
阅读更多
spring aop 功能实例简述

说明 :aspectj采用注解方式

需要的jar
导入了dist里面的所有jar
从外部找的jar共有5个:
commons-logging-1.1.1.jar
aspectjrt.jar(下载aspectj安装,从其lib路径中拷出)
aspectjweaver.jar(下载aspectj安装,从其lib路径中拷出)
cglib-2.2.jar
aopalliance.jar

1:aop拦截器类InteceptorClass

package com.Test;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;

@Aspect
public class InteceptorClass
{
    @Pointcut("execution (* com.Test.AopServiceImpl.*(..))")
    private void myPointCutMethod(){};
    
    @Before("myPointCutMethod() & args(name)")
    public void doAccessCheck(){
        System.out.println("before advice");
    }
   

    @After("myPointCutMethod()")
    public void doMemoryClear(JoinPoint point){
     Object objArgsObject = point.getArgs()[0];
        System.out.println(objArgsObject.toString());
    }

}



2:业务类AopService

package com.Test;

public interface AopService
{
  public String save(String user);
  public void update(String user);
}

package com.Test;

public class AopServiceImpl implements AopService
{
  private String user = null;
 
  
     public AopServiceImpl(String user) {
         this.user = user;
     }
 
     public AopServiceImpl() {}
  
     public String getUser() {
         return user;
     }
 
     
     public void setUser(String user) {
         this.user = user;
     }
     
     public String save(String user){
            return "Jamson";
     }
     
     public void update(String user){
             }
}

3:spring配置文件beans.xml

<?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:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-3.0.xsd
    http://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.0.xsd
    http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd">
  <context:annotation-config/>
  <aop:aspectj-autoproxy/>

<bean id="aopService" class="com.Test.AopServiceImpl" />
    <bean id="inteceptorClass" class="com.Test.InteceptorClass"   scope="singleton">
    </bean> 
</beans>
4:测试类AOPTest

package com.Test;

import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class AOPTest
{

private static AopService aopService;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
  ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
  aopService = (AopService) ctx.getBean("aopService");
}
@Test
public void aoptest(){
  aopService.save("qqqqqqqqqqqqqqqqqqqqqqqq");
}

}
分享到:
评论

相关推荐

    springboot的aop使用

    AOP的简述部分提到了AOP编程的三个关键部分:定义业务组件、定义切入点和定义增强处理。Spring框架默认使用Java动态代理机制创建代理对象,为接口方法提供代理。如果被代理的类不是接口,则自动切换为使用CGLIB进行...

    Struts+Spring+Hibernate开发实例 (SSH整合)

    Spring框架的核心在于依赖注入和AOP(面向切面编程),它简化了对象之间的依赖关系,并提供了与Hibernate的无缝集成。Spring的Hibernate支持可以自动管理Session和事务,但在某些特定情况下,如需要自定义SQL查询或...

    Struts2+Spring入门教程及实例

    4. **AOP**:讲解面向切面编程,如何定义切面、通知类型,以及如何使用Spring AOP实现日志、事务管理等通用功能。 5. **Spring MVC**:介绍Spring MVC框架,与Struts2的比较,以及如何配置和使用Spring MVC处理HTTP...

    《Java EE企业级应用开发教程Spring+Spring MVC+MyBatis》_源代码.zip

    《Java EE企业级应用开发教程Spring+Spring MVC+MyBatis》是一本深入探讨Java企业级应用程序开发的书籍,源代码包含多个章节的实例,旨在帮助读者理解和掌握使用Spring、Spring MVC和MyBatis框架进行实际开发的关键...

    spring框架教学课件

    6. **Spring Boot**:简述Spring Boot的出现背景,快速启动应用的方式,自动配置和起步依赖等。 7. **Spring Data访问**:涉及JDBC、Hibernate和MyBatis的集成,以及Spring Data JPA和Spring Data MongoDB等。 8. ...

    Spring学习笔记&源码

    7. **Spring Boot**:简述Spring Boot的自动化配置和起步依赖,以及如何快速构建微服务应用。 8. **Spring Cloud**:如果包含高级内容,可能还会涉及到Spring Cloud的相关组件,如Eureka服务注册与发现、Ribbon...

    Spring Professional Certification Study Guide

    3. **AOP**:讲解面向切面编程的概念,包括切点、通知、代理和AOP在Spring中的实现。 4. **Spring MVC**:深入探讨Spring MVC架构,包括DispatcherServlet、ModelAndView、Controllers和视图解析器。 5. **数据...

    Spring-SpringMVC-Mybatis整合所有jar包

    1. **Spring框架**:Spring是一个全面的开源应用框架,它提供了对AOP(面向切面编程)、DI(依赖注入)和IoC(控制反转)的支持。在Java企业级应用中,Spring可以帮助开发者更好地管理对象之间的关系,降低组件间的...

    spring入门教程书籍

    这些书籍将帮助新手逐步理解Spring框架的核心特性,同时提供丰富的实例和最佳实践,帮助读者从基础到高级,全方位地掌握Spring技术栈,为后续的企业级应用开发打下坚实基础。通过学习和实践,你可以有效地提升自己的...

    Struts_Spring_Hibernate整合教程

    **Spring框架**则是一个全面的企业级应用框架,它不仅支持MVC模式,还提供了依赖注入(DI)和面向切面编程(AOP)等功能。Spring允许开发者在不使用EJB的情况下实现企业级服务,如事务管理。Spring的IoC容器是其核心...

    spring面试题分析

    2. **使用AOP配置声明式事务**:面向切面编程(AOP)是Spring框架提供的另一个重要功能。通过AOP,开发者可以在不修改业务逻辑代码的情况下添加如日志记录、性能统计、安全控制、事务处理等功能。在Spring中,通常使用...

    第一周总结(1).doc

    Spring MVC的执行流程简述如下: 1. 用户向前端控制器DispatcherServlet发送请求。 2. DispatcherServlet调用HandlerMapping找到对应的处理器(Controller)和拦截器。 3. HandlerAdapter处理Controller,执行其业务...

    SSH整合开发完整例子(Struts+spring+hibernate完整开发)

    2. Spring:Spring 是一个全面的后端框架,提供包括依赖注入(DI)、面向切面编程(AOP)、事务管理、数据访问/集成、远程调用、web框架等在内的多种功能。在SSH中,Spring主要负责管理对象的生命周期和控制流程。它...

    跟我学spring3(1-7)1

    1. **5.1 概述**:简述了SpEL的作用和基本概念,以及它在Spring中的应用场景。 2. **5.2 SpEL基础**:介绍了SpEL的基本语法,如变量引用、运算符、条件语句等。 3. **5.3 SpEL语法**:详细讲解了SpEL的高级语法,...

    spring装配bean的3种方式总结

    Spring框架是Java EE应用程序的核心框架之一,它提供了依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)等功能。依赖注入是Spring框架的核心机制之一,它可以将复杂的业务...

    SSH框架搭建步骤

    3. **配置Spring**:创建`applicationContext.xml`配置文件,定义Bean的实例化、依赖关系以及AOP配置。 4. **编写业务逻辑**:创建服务接口和服务实现类,使用@Autowired注解进行依赖注入。 5. **配置数据访问**:...

    JAVA相关面试题,Spring面试题

    - **Spring**: Spring框架是一个轻量级的Java应用开发框架,提供了一系列企业级服务,如依赖注入(DI)、面向切面编程(AOP)、事务管理等。 #### 十五、Spring框架的主要优点? - **IoC(Inversion of Control)*...

Global site tag (gtag.js) - Google Analytics