为什么要写这个呢?我面试的时候让人刺激了,确实本身自己也不知道,像我这种半路出家做程序猿的,什么也不知道,也没人教知识(半路出家的很多吧,哈哈),想想还有点可怜,既然没人教就自己抽时间学习吧,其他的都是借口。
学习一段时间后,本来是想介绍xml的配置,但是一想,spring这个框架涉及的相关知识太多了,如果没有想关的疏导,就跟一团浆糊一样,我想你们也是一样的。
俗话说---实践出真知,但实践的前提是理论(理论来源于“想象”,个人理解)。
都知道spring是轻量级的可以解决企业级应用等多用途的框架。可spring是个什么鬼,其实还是有不少人不明白。
这是我在《spring5开发大全》这本书里面看的,这本书写的很好,适合工作2年以上的朋友看。觉得写的不详细的可以买了看看。
写的文章里面有很多行业的名词,不管你是小白还是大佬,不明白的要弄懂,出笑话就不好了
一、spring的狭义和广义
1.狭义:spring指spring框架(spring framework(在网上搜spring为什么会出spring framework的原因))。
它的主要优势之一是:分层架构。分层架构允许使用者选择使用哪一个组件,同时为java EE应用程序开发提供集成的框架。
spring框架使用基本的pojo(普通的javabean,处理业务逻辑)完成以前有EJB完成的事情。spring 框架的核心是控制反转(IOC)和面向切面(AOP)。
spring框架是一个分层的、面向切面于java应用的一站式轻量级开元框架。
2.广义:spring指spring框架为核心的spring的技术栈。
技术栈:spring的衍生项目
a. spring data:它是spring框架中的数据访问模块对JDBC及ORM提供了很好的支持。随着NoSql和大数据的兴起,多种多样的数据库和框架的出现,spring data的产生是为了让spring开发者能更方便地使用这些新技术而诞生的“大”项目-------------它由一系列小的项目组成,分别为不同的技术提供支持,如spring data jpa、spring data Hadoop、spring data redis等。通过spring data,开发者可以用spring 提供的相对一致的方式来访问位于不同类型的数据存储中的数据。
b. spring batch:一款专门针对企业级系统中的日常批处理任务的轻量级框架,能够帮助开发者能方便开发出健壮、高效的批处理引用程序。通过它可以轻松构建出轻量级的、健壮的并口处理应用,并支持事物、并发、流程、监控、纵向和横向扩展,提供统一的接口管理和任务管理。spring batch对批处理进行了一定的抽象,它的框架可以大致分为3层,自上而下分别是业务逻辑层、批处理执行环境层和基础设施层。
c. spring integration:在企业软件开发过程中,经常会遇到需要与外部系统集成的情况。开发时使用了spring框架,那么不妨考虑spring integration----------它为spring编程模型提供了一个支持企业集成模式的扩展,在应用程序中提供轻量级的消息机制,可以通过声明式的适配器于外部系统进行集成。spring integration中有几个概念,分别为message(带有元数据的java对象)、channel(传递消息的管道)和message endpoint(消息的处理端)。在处理端可以对消息进行转换、路由、过滤、拆分、聚合等操作;更重要的是可以使用channel adapter,这是应用程序与外界交互的地方,输入是inbound,输出是outbound,可选的连接类型有很多,如AMQP、JDBC、web services等。
d. spring security: 前身书Acegi,较为成熟的子项目之一,作用:可定制化的身份验证和访问控制框架。开源书《spring security 教程》,作为权限控制还是不错的框架
e. spring mobile:是对spring mvc的扩展,在简化移动web应用的开发。
f. spring for android:简化Android原生应用程序开发的spring扩展
j. spring boot: 指spring团队的全新框架。其目的是为了简化新spring应用的初始搭建及开发过程。该框架使用特定的方式来进行配置,从而使开发人员不在需要定义样板化的配置(意思就是减少配置文件)。spring boot为平台及第三方库提供了“开箱即用”的设置。开源书《spring boot教程》,现在市面上很多关于spring boot的相关书籍,具体没什么好书推荐,先看看一般的视频可以搭建一个spring boor的框架。
h. spring cloud:使用spring cloud,开发人员可以“开箱即用”地实现分布式系统中常用的服务。这些服务可以在任何环境下运行,不仅包括分布式环境。spring cloud 基于spring boot来进行构建服务,可以轻松的集成第三方库。
这是目前框架里面运用的最广泛的技术栈,官网上有spring data 、spring boot、spring cloud这三个,可以重视一下,其他的技术栈,可以在https://spring.io/projects 上面了解
拓展----spring mvc , 你们有没有想过这是很么?我在网上看了一下,
回答的简直就是醉了,看了半天都不知道写的什么意思
先理解mvc是一种框架模式,分三层 逻辑、数据、界面显示。
MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
通常模型对象负责在数据库中存取数据
View(视图)是应用程序中处理数据显示的部分。
通常视图是依据模型数据创建的
Controller(控制器)是应用程序中处理用户交互的部分。
通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据
理解这些,下面这句话就好理解了
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行Web开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架
说明spring mvc 只是spring的一种格式,也可以说明是技术栈之一