首页>>后端>>SpringBoot->spring七大模块四大特性?

spring七大模块四大特性?

时间:2023-12-05 本站 点击:0

Spring功能总结

1 什么是spring ?

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架.

spring的设计思想是,单例模式和工厂模式

2 spring的四大特点(优点)

轻量级,低侵入的设计

Spring的DI机制降低了业务对象替换的复杂性

spring不依赖于web容器,独立于各种应用服务器, Write Once,Run Anywhere(一次编译到处运行)

高度开放性:Spring并不完全依赖于Spring,开发者可自由选用Spring框架的部分或全部,它的架构仍然是内在稳定的

3 spring的组成部分 七大模块

Spring Core:Spring的基石,提供了Spring的最主要的核心机制:控制反转和依赖注入

Spring Context:提供了Spring的上下文信息,如:国际化,验证等

Spring Web支持:简化了处森瞎枯理多部分请求

Spring MVC框架支持:一个全功能的构建 Web 应用程序的 MVC 实现,MVC 容纳了大量视图技术,其中包括 JSP、Velocity等。

Spring Dao支持:Spring的Dao支持大大的简化了JDBC操作数据库所带来的繁琐

Spring ORM支持 pring框架集成了若干ORM框架,从而提供了ORM的对象关系工具,其中包括 JDO、Hibernate、iBatis和TopLink。

所有这些都遵从Spring的通用事务和DAO异常层结构。

Spring AOP:面向方面编程,提供了事务,日志,权限,安全等处理机制

4 spring的核心机制

1).控制反转(IoC/Inverse Of Control):调用者不再创建被调用者的实例,由spring框架实现(容器创建)所以称为控制反转。

2).依赖注入(DI/Dependence injection) :容器创建创建好实例后再注入调用者称为依赖注入。

什么是ioc容器

bean工厂(BeanFactory) 和 应用上下文(Application Context)

依赖注入的优点,代码将更加清晰,Spring管理bean的灵巧性,

bean与bean之间的依赖关系放在配置文件里组织,

不再担心对象之间的依赖关系之后,实现更高层次的松耦合将易如反掌

依赖注入的方式 (为什么叫依赖注入 类的四种关系 )

(1)set注入(2)构造注入(3)lookup方法注入

spring 对dao的支持

1dao模式优点

减少开发代码量 提高工作效率

降低系统资源消耗 提高系统性能

业务逻辑层与持久层(数据层)的分离,使数据与操作更为清晰。

数据访问独立到了一层,修改具体实现类,不影响系统的架构运行

2DAO模式的四个组件

DAO接口

DAO接口实现类

pojo值对象

DAO实例的定位(工厂 或 spring注入)

Spring 面向方面编程(AOP) spring支持AOP功能,AspectJ更完美的支持AOP

AOP 的核心构造是方面,它将那些影响多个类的行为封装到可重用的模块中, 将系统中通用的需求功能隔离出来形成一个功能模块,

并将这个模块切入到应用程序当中, AOP追求的是调用者与被调用者的解耦,从而消除了OOP引起的代码混乱和分散问题,

增强了系统的可维护性和代码的重用性

方面:哪方面 系统中分为业务方面的和非业务方面 Spring主要集中于非业务方面 如(日志、事务、安全、权限等)

1.面向方面与面向切面:AOP的实现中的几个重要的概念:

1.1如果理解为“面向方面编程”:

针对于某一模块进行专门的编写(如:面向日志编程,面向事务编程,面向权限等),其意思就是说面向具体的某个功能模块来编程,然后将其切入到项目中

1.2如果理解为“面向切面编程”:

连接点:程序执行过程中明确的点,如方法的调用或者异常的抛出,举个例子,如果神慧是一个权限系统的话,要控制到类中的某一个具体的方法,那么这个方法就是一个连接点

切入点:连接点的集合,如类中多个个方法的调用, 还是以权此洞限系统来举例,如果要控制一个类中的多个方法的话,那么这几个方法(也即是几个连接点)组成了一个切入点

切面:如果要控制多个类中的多个方法,那么这多个类就组成了一个切面

连接点 --- 切入点 ---- 切面(三者之间的关系可以形象的理解为:点--线--面)

引入(Introduction):添加方法或字段到被通知的类。Spring允许引入新的接口到任何被通知的对象。例如,

你可以使用一个引入使任何对象实现IsModified接口,来简化缓存。

AOP实现过程中的几种不同的方式:

拦截一类中所有的方法(连接点)

拦截一个类中的某些符合条件的方法(切入点)

拦截多个类中的符合条件的方法(切面)

2.1.连接点 --- 切入点 ---- 切面 --- 方面(解决方案的切入点)

2.2.目标对象(也就是:寻找被处理的类)

2.3.AOP代理(具体实现),分为二种,

JDK动态代理(面向接口)

Cglib代理(面向具体类)

2.4.处理(Spring AOP处理)或者叫通知,aop框架在特定的连接点执行的动作,Spring提供了五种处理方式

2.5 Advisor=(处理+切入点)

4 利用aop进行事务编程 Spring事务配置的五种方式 (掌握Spring事务体系图)

传统上,J2EE开发者有两个事务管理的选择: 全局 或 本地事务(局部事务)。全局事务由应用服务器管理,使用JTA。

局部事务是和资源相关的,比如一个和JDBC连接关联的事务

事务种类分为: jdbc事务(局部事务) jta事务(全局事务) 容器事务

1、JDBC事务控制的局限性在一个数据库连接内,但是其使用简单。局部事务

2、JTA事务的功能强大,事务可以跨越多个数据库或多个DAO,使用也比较复杂。全局事务

3、容器事务,主要指的是J2EE应用服务器提供的事务管理,局限于EJB应用

两种事务的比较

1、JDBC事务控制的局限性在一个数据库连接内,但是其使用简单。

2、JTA事务的功能强大,事务可以跨越多个数据库或多个DAO,使用也比较复杂

13.2 Spring与Struts2的整合

由于Struts2得强大可插拔式设计,使得整合spring的工作变得异常简单,

struts2-spring-plugin-2.0.8.jar就是支持spring的插件包

把struts2支持spring的插件包jar拷贝到项目中

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是 分层 的JavaSE/EE ( 一站式 ) 轻量级 开源的 容器框架 ,以 IOC (Inverse of Control 控制反转:对象之间的关系由容器创建,降低了程序之间的依赖性)和 AOP (Aspect Oriented Programming 面向切面编程)为内核的容器框架

一站式、分层:

JavaEE的有三层结构:web层、业务层、数据访问层(持久层,集成层),而Spring框架有对三层的每层解决方案:

web层:Spring MVC

持久层:JDBC Template (applicationContext.xml)

业务层:Spring的Bean管理(Bean:是spring根据用户提供相应的需求创建的对象,由IOC管理)(service)

spring官网:

Spring的英文翻译为春天,可以说是给Java程序员带来了春天,因为它 极大地简化了开发,有效的解决了当时软件开发比较复杂的问题 (当时采用EJB开发JAVA EE应用,但EJB存在着学习成本太高,开发效率比较低,资源消蔽腔耗很高的问题)。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。可以说Spring是一个提供了更完善开发环境的一个框架,可以为链森POJO(Plain Ordinary Java Object)对象提供企业级的服务。

Spring的优秀之处:

1、最完善的轻量级核心框架。

2、简化了开发,方便解耦

4、集成了Toplink, Hibernate, JDO, and iBATIS SQL Maps等优秀框架。

5、强大的AOP功能:Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能。

6、 方便程序的测试:Spring对Junit4支持,可以通过注解方便的测试Spring程序

这是Spring框架最基础的部分,所有的Spring模块都是在核心容器之上构建的。它提供了依赖注入(DependencyInjection)特征来实现容器对Bean的管理。这里最基本的概念是BeanFactory,它是任何Spring应用的核心。BeanFactory是工厂模式的一个实现,它使用IOC(控制反转)将应用配置和依赖说明从实际的应用代码中分离出来。

核心模块的BeanFactory使Spring成为一个容器,而上下文模块使它成为一个框架。这个模块扩展了BeanFactory的概念,增加了对国际化(I18N)消息、事件传播以及验证的支持(Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息)。

另宏唤衫外,这个模块提供了许多企业服务,例如电子邮件、JNDI访问、EJB集成、远程以及时序调度(scheduling)服务。也包括了对模版框架例如Velocity和FreeMarker集成的支持。

Spring在它的AOP模块中提供了对面向切面编程的丰富支持。这个模块是在Spring应用中实现切面编程的基础。为了确保Spring与其它AOP框架的互用性,Spring的AOP支持基于AOP联盟定义的API。AOP联盟是一个开源项目,它的目标是通过定义一组共同的接口和组件来促进AOP的使用以及不同的AOP实现之间的互用性。通过访问他们的站点,你可以找到关于AOP联盟的更多内容。

Spring的AOP模块也将元数据编程引入了Spring。使用Spring的元数据支持,你可以为你的源代码增加注释,指示Spring在何处以及如何应用切面函数。

使用JDBC经常导致大量的重复代码,取得连接、创建语句、处理结果集,然后关闭连接。Spring的JDBC和DAO模块抽取了这些重复代码,因此你可以保持你的数据库访问代码干净简洁,并且可以防止因关闭数据库资源失败而引起的问题。

这个模块还在几种数据库服务器给出的错误消息之上建立了一个有意义的异常层。使你不用再试图破译神秘的私有的SQL错误消息!

另外,这个模块还使用了Spring的AOP模块为Spring应用中的对象提供了事务管理服务。

对那些更喜欢使用对象/关系映射工具而不是直接使用JDBC的人,Spring提供了ORM模块。Spring并不试图实现它自己的ORM解决方案,而是为几种流行的ORM框架提供了集成方案,包括Hibernate、JDO和iBATIS SQL映射。Spring的事务管理支持这些ORM框架中的每一个也包括JDBC。

Web上下文模块建立于应用上下文模块之上,提供了一个适合于Web应用的上下文。另外,这个模块还提供了一些面向服务支持。例如:实现文件上传的multipart请求,它也提供了Spring和其它Web框架的集成,比如Struts、WebWork。

Spring为构建Web应用提供了一个功能全面的MVC框架。虽然Spring可以很容易地与其它MVC框架集成,例如Struts,但Spring的MVC框架使用IoC对控制逻辑和业务对象提供了完全的分离。

UserService的接口

UserService的实现类

spring有了6还学5吗

不学 5 也可以。spring 是一个开源的 Java 应用框架,它能够将 Java 应用程序开发变得更加简单。它提供了一个强大的核心框架,使开发者能够轻松地构建出高质量的应用程序,以及对外部系统的轻松访问。Spring 主要有七个模块:核心,AOP,远程,ORM,Web,消息和测试。其中,核心模块提供了基础的支持,而 AOP 模块则提供了面向切面编程(AOP)的支持,ORM 模块则提供了对象关系映射(ORM)的支持,而 Web 模块则提供了用于构建基于 web 的应用程序的支持。另外,消息模块提供了基于 JMS 的消息服务支持,而测试模块中敏则提供了一个简单的测试框架,用于支持单元测试。

Spring 5 是一个重要的版本,它引入了很多新的特性,比如:Reactive Programming,Functional Bean Definitions,改进的 JSON 支持和对 Kotlin 的支持。它清闹还提供了对 Java 8 和 9 的支持,以及对新的 JVM 语言(如 Groovy)的支持。此外,它还提供了对 Java 模块(Jigsaw)的支持,以及对新的容器(如 Docker)的支持。

总之,Spring 5 为开发者提供了更多的功能,能够帮助开发者更轻松地构建出高质量的应用程序。Spring 6 将会继续提供更多的新功能,以帮助开发者构答培罩建出更好的应用程序。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/SpringBoot/12722.html