`
tianhei
  • 浏览: 211645 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring简介

阅读更多

Spring的官方网站:http://www.springsource.org/

 

Spring的核心功能是IoC和AOP。IoC更为核心。

 

IoC:Inversion of Control (控制反转)

AOP:Aspect Oriented Programming (面向方面编程)

 

IoC又称DI(Dependency Injection):依赖注入

 

Spring的IoC完成的功能:

配置文件中bean的初始化,这样就不需要我们手动的书写单粒模式、工厂模式等等。只需要根据我们的需要把一个类配置成单粒的还是多粒的。

可以把IoC看成是一个抽象工厂,可以创建出许多对象。不需要我们自己编写Singleton、Factory,都由IoC容器来创建对象、管理对象。

 

IoC其实很简单
以前我们写程序时,如果A类里需要调用B类方法——那A类就自己new一个B类的实例,然后再调用B类的方法。
这样做的不好就体现在:A类的代码和B类的代码以“硬编码“方式耦合了。

 

实现方式:

通常是采用XML配置文件、或Annotation注释管理的方式配置A和B之间的依赖关系——IoC容器就会根据配置管理,运用反射创建B类的实例,把B实例注入给A。这样A类就和B类的耦合分离开了。

 

Ioc是一种思想,具体的实现包括两种:依赖查找、依赖注入
依赖查找:需要调用相应的API,这样就会有依赖性,所以很少用。
IoC采用DI(Dependency Injection)技术:依赖注入
通过set()、get()、构造方法,对象new好之后,容器帮助把对象注入进来。

 

--------------------------------------------------------------------------------------------
AOP的全称是Aspect Oriented Programming,中文翻译成面向方面编程、面向切面编程。

 

AOP的缺省实现:jdk的动态代理机制。

 

JDK的动态代理机制。
静态代理:确实存在的。
动态代理:在运行期生成的。

 

JDK的动态代理机制术语:
目标对象(targetObjet):应用的业务逻辑处理对象。就是真实的实现类。
代理对象(Proxy Object):根据代理机制生成的对象,代理对象要以目标对象为基础。

 

横切性关注点(advice):
有一些方法,它可以独立出来。但是我们的业务逻辑执行的时候要执行这些额外的方法。
我们把这些独立出来的方法叫做横切性关注点。
这些横切性关注点可能散列在程序里,我们把它拿出来并且模块化。以后我们单独修改这些模块就可以了。
可见AOP就是面向对象的一个补充。模块化的这个类就叫切面类(Aspect)。

 

AOP管理的就是横切性关注点。

 

JDK的动态代理:
运行期生成
动态代理首先要实现一个接口:java.lang.reflect.InvocationHandler
代理对象和目标对象的接口是一致的。

 

切面类(Aspect)里包括:
横切性关注点(advice)的所有实现。
对横切性关注点模块化的这个类就叫做切面类。

 

advice分类:
before advice:加到方法之前
after advice:加到方法之后

 

切入点(pointcard)
有一些表达式,表示要把advice加入到目标对象的哪些方法里。

 

把切面应用到目标对象的方法上这个过程叫做支入(Weave)。

 

连接点(Joinpoint)
把切面应用到目标对象的方法上,这个方法叫做连接点。目前spring连接点只支持基于方法。

 

AOP的关键是发现横切性关注点,最后把这些关注点模块化成切面类。

 

实现AOP有多种方法:
1、采用jdk动态代理
2、使用CGLIB(字节码生成)
如果目标对象实现了接口,spring默认情况下会采用jdk的动态代理来实现AOP。
如果目标对象实现了接口,spring也可以强制使用CGLIB来实现AOP。(需要CGLIB库)
如果目标对象没有实现接口,必须使用CGLIB来实现AOP。

 

 

分享到:
评论

相关推荐

    Spring 简介 Spring 简介

    Spring 框架是Java开发领域中的一个核心框架,它主要设计目的是为了简化企业级应用的复杂性。Spring 自从2003年发布以来,因其强大的功能和灵活性,已经成为了许多开发者的首选。本节将详细介绍Spring的基本概念、...

    Spring简介(ppt)

    **Spring框架概述** Spring是一个广泛使用的Java开源框架,主要用于简化企业级应用的开发。它的核心设计理念是“简事简为,难事善为,重用轮子”,旨在提高开发效率,减少代码冗余,并促进代码的可维护性和可测试性...

    01-spring简介-框架的概念

    01-spring简介-框架的概念Spring框架是 Java 平台的一个开源的全栈(Full-stack)应用程序框架和控制反转容器实现,一般被直接称为 Spring。该框架的一些核心功能理论上可用于任何 Java 应用,但 Spring 还为基于...

    深入Spring简介与入门

    深入Spring简介与入门 Spring框架,作为Java世界中最具影响力的轻量级框架之一,自诞生以来便以其简洁、灵活的设计理念赢得了广大开发者的青睐。本文旨在深入探讨Spring框架的核心概念、架构设计及其在实际开发中的...

    Spring 简介

    Spring 简介 java Spring

    Spring简介+IOC(理论).ppt

    Spring简介+IOC(理论 Spring简介+IOC(理论 Spring简介+IOC(理论 Spring简介+IOC(理论 Spring简介+IOC(理论 Spring简介+IOC(理论

    JAVA Spring 10、Spring简介.pdf

    JAVA Spring 10、Spring简介.pdf

    01Spring简介.md

    01Spring简介.md

    1.spring简介.md

    1.spring简介.md

    Spring 简介 轻量级的J2EE 应用程序框架

    #### 一、Spring框架简介 Spring框架是一个开源的轻量级Java应用框架,主要用于简化企业级应用开发。它通过提供一系列的开发工具和服务,帮助开发者构建灵活、可扩展的应用系统。 #### 二、Spring的核心功能 ...

    中软国际Spring简介

    **Spring框架概述** Spring是一个开源的Java平台,它主要为构建企业级应用提供全面的解决方案。这个框架由Rod Johnson在2003年发起,旨在简化Java开发,尤其是在企业级应用开发中的复杂性。Spring的核心设计理念是...

    Spring简介.doc

    Spring致力于J2EE应用的各层的解决方案,而不是仅仅专注于某一层的方案。可以说Spring是企业应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。然而,Spring并不想取代那些已有的框架,而与它们无缝地整合。

    spring简介

    Spring框架简介和基本原理 Spring是一个业界广泛采用的Java应用程序框架,旨在简化Java企业级应用程序的开发。 Spring框架的核心是容器(IoC容器),它提供了依赖注入(Dependency Injection)的机制,能够将应用...

    Spring简介和入门

    Spring框架是Java开发中的一个重要组成部分,它由Rod Johnson创建,主要目标是解决企业级应用开发中的复杂性,尤其是对EJB(Enterprise JavaBeans)的过度依赖。Spring最初的理念源自于Rod Johnson的著作《Expert ...

    java spring简介及相关面试题

    ### Java Spring 框架简介及相关面试题解析 #### Spring框架概述 Spring 是一款非常流行的开源Java企业级应用开发框架,被广泛应用于构建高性能、易测试及可复用的Java应用。该框架由Rod Johnson创建,并于2003年6...

    spring简介-spring概念与体系结构

    在Spring之前我们写代码容易遇到高耦合问题,如下图所示,业务层的实现需要new一个数据层的对像,但是如果我们的数据层发生改变时,业务层的对象必须重新新建,重新进行编译、打包、部署,改动相对较多,代码耦合度...

    Spring攻略PDF版

     第2章 Spring简介   2.1 Spring Framework   2.1.1 Spring的模块介绍   2.1.2 Spring的发布版本   2.1.3 Spring的项目   2.2 安装Spring Framework   2.2.1 问题描述   2.2.2 解决...

Global site tag (gtag.js) - Google Analytics