`

springframework【5】

阅读更多

spring的AOP是基于代理的。java的事务控制是基于代理的。这两句话熟悉吧,一些老鸟就喜欢用这些词汇让我们犯晕,让我们感到他们很专业。这里我们将打破这个神话,本篇先介绍基于代理的AOP。这里我们先展示下什么叫做代理,先从静态代理开始。

一个静态代理的例子。

1、定义一个接口

AOP之静态代理

 

package com.itcast.aop;
//要实现的接口
public interface IHello {
	public void hello(String name) throws Exception;
	public void helloAaa(String name);
	public void helloBbb(String name);
}

 

 

2、一个实现接口的实例

 

package com.itcast.aop;
//实现方法1
public class HelloSpeaker implements IHello{
//	private Logger logger = Logger.getLogger(this.getClass().getName());
	public void hello(String name) throws Exception{
		System.out.println("Hello "+ name);
	}
	public void helloAaa(String name) {
		System.out.println("Hello in aaa "+ name);
	}
	public void helloBbb(String name) {
		System.out.println("Hello in bbb "+ name);
	}
}

 

3、调用的静态代理类

 

package com.itcast.aop;

import java.util.Date;
import java.util.logging.Logger;
//静态代理类
public class HelloProxy implements IHello {
private Logger logger = Logger.getLogger(this.getClass().getName());
private IHello helloObj;
public HelloProxy(IHello helloObj){
	this.helloObj=helloObj;
}
public void hello(String name) {
	logger.info("method start at "+new Date());
	try {
		helloObj.hello(name);
	} catch (Exception e) {
		e.printStackTrace();
	}
	logger.info("method end at "+new Date());
}
public void helloAaa(String name) {
	System.out.println("Hello in aaa"+ name);
}
public void helloBbb(String name) {
	System.out.println("Hello in bbb"+ name);
}
//静态代理类的测试方法
public static void main(String[] args){
	IHello proxy = new HelloProxy(new HelloSpeaker());
	try {
		proxy.hello("tester");
	} catch (Exception e) {
		e.printStackTrace();
	}
}
}

 

上边就是我们的静态代理类,代理了我们IHello接口的实现类,并加上了自己的日志输出,在IHello的实现类的hello方法每次被调用的时候,都会被在其前后加上日志。

结果如下:

信息: method start at Sun Mar 15 10:57:31 CST 2009
2009-3-15 10:57:32 com.itcast.aop.HelloProxy hello
信息: method end at Sun Mar 15 10:57:32 CST 2009

以上就是静态代理,原理很简单,目的也很简单,就是调用接口实现类的某个方法之前或者之后调用另外的操作。

总结下开发步骤:

 1、创建一个接口

 2、创建一个接口的实现类

 3、创建一个代理类,这个代理类也实现了上边的接口,但是将 要被代理的实现类传入到代理类中,在代理类的接口实现方法中调用,并在调用前后加上一些操作(上边的就是日志操作而已)

 

 

 

分享到:
评论

相关推荐

    Getting started with Spring Framework: covers Spring 5(epub)

    Getting started with Spring Framework (4th Edition) is a hands-on guide to begin developing applications using Spring Framework 5. The examples (consisting of 88 sample projects) that accompany this ...

    Spring_Framework_ API_5.0.5 (CHM格式)

    SpringFramework5 包含响应流(定义响应性API的语言中立尝试)和 Reactor(由Spring Pivotal团队提供的 Reactive Stream 的Java实现), 以用于其自身的用途以及其许多核心API。 Spring Web Reactive 在 spring-...

    Spring Framework v5.3.32.zip

    8. **WebSocket支持**:Spring Framework 5引入了对WebSocket协议的支持,提供了与服务器进行全双工通信的能力,适用于实时应用。 9. **反应式编程**:Spring 5引入了对Reactive Streams的支持,通过Project ...

    Spring Framework 5.1.0源码

    Spring Framework 5.1.0源码 The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform. A key ...

    springframework5Courseproject:Spring Framework 5课程项目

    《Spring Framework 5课程项目详解》 Spring Framework 5是Java开发领域中备受推崇的框架,它为构建高质量的企业级应用程序提供了强大的支持。本项目基于Spring Framework 5,旨在通过实际操作来深入理解和掌握该...

    Spring Framework API(Spring Framework 开发文档).CHM

    Spring Framework。 官网 Spring Framework API。 Spring Framework 开发文档。

    Spring Framework 5 中文文档

    5. 验证、数据绑定和类型转换 6. Spring表达式语言 9. Spring框架下的测试 10. 单元测试 11. 集成测试 14. DAO支持 15.使用JDBC实现数据访问 16. ORM和数据访问 17. 使用 O/X(Object/XML)映射器对XML进行编组 19. ...

    maven仓库中org下的springframework

    标题中的“maven仓库中org下的springframework”指的是在Maven的本地或远程仓库中,位于`org`组织下的`springframework`项目。Spring Framework是Java开发中的一个核心框架,由Pivotal Software公司维护,它为构建...

    Spring Framework 4 参考文档中文版.docx

    "Spring Framework 4 参考文档中文版" 以下是 Spring Framework 4 参考文档中文版的知识点总结: 一、Spring Framework 概览 * Spring Framework 是一个轻量级的解决方案,是一站式构建企业级应用的一种选择。 * ...

    org.springframework.core.jar

    5. **排序与比较**:`org.springframework.core.order`和`org.springframework.core.type`包提供了排序算法和类型比较机制,对于Spring容器中bean的排序和类型检查起到了关键作用。 6. **事件驱动**:`org.spring...

    spring framework 中文参考手册

    spring framework 中文参考手册

    spring-framework-5:Spring Framework 5:Guru存储库的初学者

    《Spring Framework 5:Guru存储库的初学者》 Spring Framework 5 是Java开发领域中最流行的开源框架之一,尤其在构建企业级应用时扮演着核心角色。它为开发者提供了全面的基础设施支持,包括依赖注入(DI)、面向...

    Spring Framework v6.1.4.zip

    Spring Framework 是一个广泛使用的开源Java应用框架,特别适用于企业级应用程序开发。它的最新版本v6.1.4为我们带来了许多新特性和改进,使得开发者能够更高效、更灵活地构建可维护的、高性能的应用程序。这个...

    Spring Framework API文档

    Spring Framework API文档。Spring是什么呢?首先它是一个开源的项目,而且非常活跃;它是一个基于IOC和AOP的构架多层j2ee系统的框架,但它不强迫你必须在每一层中必须使用Spring,因为它模块化的很好,允许你根据...

    org.springframework.flex-1.0.3.RELEASE.jar.zip

    org.springframework.flex-1.0.3.RELEASE.jar.zip用于JAR包,org.springframework.flex-1.0.3.RELEASE.jar.zip用于JAR包org.springframework.flex-1.0.3.RELEASE.jar.zip用于JAR包org.springframework.flex-1.0.3....

    org.spring-framework-3.0.4. 所有jar

    org.springframework.aop-3.0.4.RELEASE.jar org.springframework.asm-3.0.4.RELEASE.jar org.springframework.aspects-3.0.4.RELEASE.jar org.springframework.beans-3.0.4.RELEASE.jar org.springframework....

    SpringFramework_v5.2.3.zip

    8. **WebSocket支持**:Spring Framework 5增加了对WebSocket协议的支持,使得实时通信变得更加便捷。 9. **Reactive编程**:Spring 5引入了Reactor,一个响应式编程库,支持非阻塞I/O,适用于高并发场景,适应现代...

    官方原版完整包 spring-framework-5.3.6.RELEASE-dist.zip

    - 新功能:Spring Framework 5.x引入了对Reactive编程模型的支持,通过Project Reactor提供了非阻塞I/O能力,适应微服务和云原生环境的需求。 总的来说,"spring-framework-5.3.6.RELEASE-dist.zip" 包含了开发基于...

    spring framework 简介

    ### Spring Framework 简介 #### 一、Spring Framework 的独特之处 在众多J2EE框架中,Spring Framework 自2003年发布以来一直备受瞩目。与其他框架相比,Spring Framework 的独特之处在于: 1. **专注于管理业务...

Global site tag (gtag.js) - Google Analytics