当前位置: 首页 > article >正文

Spring——Spring详细简介

文章目录

  • Spring——Spring简介
    • 1、什么是Spring
    • 2、Spring设计理念
    • 3、Spring下载
    • 4、Spring组成

Spring——Spring简介

1、什么是Spring

spring是J2EE应用程序框架,是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。,主要是针对javaBean的生命周期进行管理的轻量级容器,可以单独使用,也可以和Struts框架,ibatis框架等组合使用。

Spring框架雏形interface21框架

  • 轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。

  • 控制反转——Spring通过一种称作控制反转(IOC)的技术促进了松耦合。当应用了IOC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IOC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

  • 面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

  • 容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。

  • 框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。

Spring的作用:解决企业应用开发的复杂性

优点:

  • 开源,免费

  • 轻量级,非入侵的框架

  • 支持事务处理

  • 对框架整合的支持

  • 控制反转(IOC)和面向切面(AOP)

2、Spring设计理念

  • 在各个层面提供选择。Spring允许您尽可能晚地推迟设计决策,例如,您可以通过配置切换持久性提供程序,而无需更改代码。对于许多其他基础设施问题和与第三方api的集成也是如此。
  • 包容不同的观点。Spring拥抱灵活性,对事情应该如何做没有意见。它以不同的视角支持广泛的应用需求。
  • 保持强大的向后兼容性。Spring的演进经过了仔细的管理,使得版本之间很少有突破性的变化。Spring支持精心选择的JDK版本和第三方库,以便于维护依赖Spring的应用程序和库。
  • 关心API设计。Spring团队投入了大量的思想和时间来制作一个直观的、可以在很多版本和很多年内使用的apist。
  • 为代码质量设定高标准。Spring框架非常强调有意义的、当前的和准确的javadoc。它是为数不多的几个能够声明在包之间没有循环依赖关系的代码结构的项目之一。

3、Spring下载

Spring官网:https://spring.io/projects/spring-framework 5.3.5

Spring下载地址:https://repo.spring.io/release/org/springframework/spring/

Spring API:https://docs.spring.io/spring-framework/docs/current/javadoc-api/

Spring帮助文档:https://docs.spring.io/spring-framework/docs/current/reference/html/

导入依赖:

<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.12.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.3.5</version>
</dependency>

4、Spring组成

七大模块:

在这里插入图片描述

七大模块介绍:

1.Spring Core:
Core封装包是框架的最基础部分,提供了spring 的核心功能,提供IOC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。

2.Spring Context:
构建于Core封装包基础上的 Context封装包,提供了一种框架式的对象访问方法,有些象JNDI注册器。Context封装包的特性得自于Beans封装包,并添加了对国际化(I18N)的支持(例如资源绑定),事件传播,资源装载的方式和Context的透明创建,比如说通过Servlet容器。

3.Spring DAO:
DAO (Data Access Object)提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。 并且,JDBC封装包还提供了一种比编程性更好的声明性事务管理方法,不仅仅是实现了特定接口,而且对所有的POJOs(plain old Java objects)都适用。

4.Spring ORM:
ORM 封装包提供了常用的“对象/关系”映射APIs的集成层。 其中包括JPA、JDO、Hibernate 和 iBatis 。利用ORM封装包,可以混合使用所有Spring提供的特性进行“对象/关系”映射,如前边提到的简单声明性事务管理。

5.Spring AOP:
Spring的 AOP 封装包提供了符合AOP Alliance规范的面向方面的编程实现,让你可以定义,例如方法拦截器(method-interceptors)和切点(pointcuts),从逻辑上讲,从而减弱代码的功能耦合,清晰的被分离开。而且,利用source-level的元数据功能,还可以将各种行为信息合并到你的代码中。

6.Spring Web:
Spring中的 Web 包提供了基础的针对Web开发的集成特性,例如多方文件上传,利用Servlet listeners进行IOC容器初始化和针对Web的ApplicationContext。当与WebWork或Struts一起使用Spring时,这个包使Spring可与其他框架结合。

7.Spring Web MVC:
Spring中的MVC封装包提供了Web应用的Model-View-Controller(MVC)实现。Spring的MVC框架并不是仅仅提供一种传统的实现,它提供了一种清晰的分离模型,在领域模型代码和Web Form之间。并且,还可以借助Spring框架的其他特性。

这七大模块可以单独使用,不需要其他模块的支持

http://www.lryc.cn/news/2416245.html

相关文章:

  • 【转】汉字编码常识
  • appletviewer命令
  • 关于simpleCD
  • 媒体中心软件专题:XBMC
  • VB中小饭店餐饮管理系统的设计程序源代码+说明文档前后台管理随着我国市场经济的快速发展,各行业都呈现出生机勃勃的发展景象,其中餐饮业的发展尤为突出。近两年来已呈现出高速发展的态势。但在快速发展的同
  • 低精度加速高斯过程
  • Java和C++的联系与区别
  • 性能测试必备基础知识(一)
  • miui12.5增强版刷机教程
  • 用计算机表白的数字,高级暗语表白 数字1-9暗语表白 暗语表白越难懂越好
  • 5.Flink对接Kafka入门
  • 数字电视原理和应用
  • android 唤醒屏幕
  • 计算机网络fsk是什么意思,一文读懂LoRa与FSK的共性与区别-通信/网络-与非网
  • 最新免费wap网址大全
  • 【毕业设计】基于SSM的婚纱摄影网站的设计与实现
  • myeclipse 8下载和注册码
  • ActiveX控件(.ocx .cab ..)数字签名全过程
  • 预置BAE的智能终端介绍
  • 最全BT介绍
  • 我们来找茬外挂思路之一
  • SQLServer DBA 六十问
  • 电算化会计应掌握的计算机知识,实现会计电算化后应该设置哪些会计岗位 - TABUZHE...
  • date,datetime,timestamp 的区别
  • 使用Eclipse如何简单快速搭建SSM(springMVC+Spring+Mybatis)框架
  • BST(二): minmaxsuccessordecessor
  • 【IOS】获取iOS设备唯一标识的演进UDID, MAC Address,UUID,IDFA,IDFV,OpenUDID
  • (46.1)【WAF绕过】知己知彼:safedog、aliyun-os、BT的防护功能理解
  • 以todomvc为例分析knockout、backbone和angularjs
  • 2024Matlab小白入门详细教程