当前位置:首页>开发>正文

spring的模块划分,各有什么特点 Spring框架主要有哪些模块

2023-12-31 19:14:39 互联网 未知 开发

 spring的模块划分,各有什么特点 Spring框架主要有哪些模块

spring的模块划分,各有什么特点

Spring有七大功能模块,分别是Spring Core,AOP,ORM,DAO,MVC,WEB,Context。
1,Spring Core
Core模块是Spring的核心类库,Spring的所有功能都依赖于该类库,Core主要实现IOC功能,Sprign的所有功能都是借助IOC实现的。
2,AOP
AOP模块是Spring的AOP库,提供了AOP(拦截器)机制,并提供常用的拦截器,供用户自定义和配置。
3,ORM
Spring 的ORM模块提供对常用的ORM框架的管理和辅助支持,Spring支持常用的Hibernate,ibtas,jdao等框架的支持,Spring本身并不对ORM进行实现,仅对常见的ORM框架进行封装,并对其进行管理
4,DAO模块
Spring 提供对JDBC的支持,对JDBC进行封装,允许JDBC使用Spring资源,并能统一管理JDBC事物,并不对JDBC进行实现。
5,WEB模块
WEB模块提供对常见框架如Struts1,WEBWORK(Struts 2),JSF的支持,Spring能够管理这些框架,将Spring的资源注入给框架,也能在这些框架的前后插入拦截器。
6,Context模块
Context模块提供框架式的Bean访问方式,其他程序可以通过Context访问Spring的Bean资源,相当于资源注入。
7,MVC模块
WEB MVC模块为Spring提供了一套轻量级的MVC实现,在Spring的开发中,我们既可以用Struts也可以用Spring自己的MVC框架,相对于Struts,Spring自己的MVC框架更加简洁和方便。

Spring框架主要有哪些模块

主要七大模块介绍
1. Spring AOP 面相切面编程
2. Spring ORM Hibernate|mybatis|JDO
3. Spring Core 提供bean工厂 IOC
4. Spring Dao JDBC支持
5. Spring Context 提供了关于UI支持,邮件支持等
6. Spring Web 提供了web的一些工具类的支持
7. Spring MVC 提供了web mvc , webviews , jsp ,pdf ,export

spring核心的知识

Spring是构造java应用的轻量级框架,这里的轻量级不是指类的多少,或者发行包的大小,而是指最小侵入,也就是说,你可以只需改最少的代码就可以获得它带来的好处,不像EJB中创建EntityBean那样具有很强的侵略性。

IOC(Inversion of Control)控制反转:它是Spring的核心,是一种将组件依赖关系的创建和管理置于程序外部的技术。根据我个人的使用是这么理解的:如果用IOC,一个类A中如果要用到其他类B的功能,必须在本类中写入B,同时声明对象B b= new B(),调用方法;而如果使用IOC后,这里的new B()就不必在这里写了,而是在运行时根据spring的xml中的配置动态地把B的实例对象传递给A。这是我个人的理解。IOC也叫DI(Dependency Injection)依赖注入,根据上面的解释应该很好理解字面的意思。IOC一般跟接口配合使用,两者都会得到好处,不难理解,使用接口的话没有IOC,把采用接口的程序连接起来,复杂度很高,代码量也不会少,而有了IOC,代码量会少很多。

面向切面编程(AOP):它是OOP的补充,而不是OOP的对手。不用OOP只用AOP写程序几乎不可能。 OOP可以有效解决很多问题,但在有些问题的解决上,运用AOP会使工作更加聪明轻松。AOP使得程序更加模块化,行程多个"关注点",而同一程序的很多部分重复使用这些"关注点"。举个容易懂的例子:系统日志和安全控制是很多程序典型的横切,横切的意思就是把程序横向展开,里面很多方法都会用到这些功能,而AOP是实现横切的有效工具。如果不用AOP,我们要有一个日志类,然后在每一个方法开始和结束时都要调用这个类的两个方法才能完成日志记录功能,而使用AOP之后,只需要声明日志类的相关方法应该在每个方法的开始和结束时调用就可以了。在Spring框架内部,AOP大量用于事务管理中。AOP的核心概念有下面几个:

联结点(JoinPoint):是程序执行过程中的一个特定点。例如:调用一个方法、类初始化、对象初始化等。它用来定义程序在哪里通过AOP加入横向逻辑。是AOP核心

通知(Advice):在某一个联结点处运行的代码成为通知.根据在联结点之前执行和之后执行分为前置通知和后置通知。

切入点(Pointcut):来定义某一个通知该何时执行的一组联结点。通常会组件复杂的切入点来控制通知什么时候运行。很重要

方面:通知 切入点的组合为方面,AOP就是指面向方面编程,指定义了逻辑和何时执行该逻辑。

织入(Weaving):将方面真正加入程序代码的过程。静态AOP在编译阶段完成。而Sping中在动态运行时完成。

目标(Target):指受到AOP修改的对象,也叫被通知对象。

引入(Introduction):通过引入,我们可以在一个对象中加入新的方法和属性,改变它的结构。即使一个类没有实现某接口,我们也可以修改它,使它像是实现了这个接口。

同样AOP分为静态和动态的。静态是指横切逻辑实在编译时就加入程序中的,如果修改横切需要重新编译代码,例如AspectJ。而Spring中是动态的,也就是运用了上面IOC的思想,横切逻辑在运行时动态加入。静态和动态的在一起使用时功能更加强大