Spring零基础入门之什么是Spring

spring新手教程(Spring零基础入门之什么是Spring)(1)

虽然spring半知半解的也用上了很久,也勉强知道它有个ioc和aop,别人问了能支支吾吾说一堆,但是一旦让你深入说一下,就马上原形毕露。在java web领域中的spring已经是标配中的标配,而且是毫无疑问的老大哥,说实话你可以不会回答多线程、并发之类的问题,但是spring是不能不会的。

尽管网上已经有些“懂哥们”(逼乎上最多)从几年前就开始把spring贬的一文不值了,但是显然现在springboot、springcloud,随着时间推移spring已经在web开发中站的越来越稳了,很难想象它会有倒下的一天。而且,就算你想像他们一样牛掰,但是如果你不了解spring,你也喷不到点上不是吗?

本篇就详细、用容易理解的大白话的过一过spring。

Spring描述

Spring是java EE编程领域的一个轻量级开源框架,它是为了解决企业级编程开发中的复杂性,实现敏捷开发的应用型框架。它还是个开源的容器框架,整合了各类型的工具,通过Bean factory实现了底层的类的实例化和生命周期的管理。

——来自百度百科的解释

1.什么是Spring?

简单说Spring就是一个轻量级的开源框架,它的主要功能就是简化java应用的开发,同时它可以帮助我们方便的整合、集成其他的应用。

Spring其实并不具体指向某一个包或软件,一般我们说的spring框架指的都是Spring Framework,它是很多模块的集合:核心容器、数据访问/集成、Web、AOP(面向切面变成)、工具、消息和测试模块……等等。我们可以从中选择自己需要的模块使用,当然核心容器这个模块是必不可少的,每个其他模块都依赖它。

所以可能你用了Spring的10个模块,他用了5个模块,我只用了核心模块,使用方式都不同,这也从侧门描写了Spring的轻量级

2.Spring一些重要模块简介

这里简单介绍下Spring的一些比较知名的重要模块,由于这还是Spring描述,所以先尽量不去涉及一些关键字和技术名。注意不需要过度深入,只需要了解一下即可,毕竟有些模块可能你以后都不会用。

三大核心模块:

  • Spring Core:Spring的核心模块,提供了Spring框架的基本功能,可以说Spring 其他所有功能模块都需要依赖于该核心库。
  • Spring Beans:提供了对Bean相关的操作,包括定义、创建和解析。Bean是Spring的核心功能IoC中使用的,关于IoC后面会讲解,现在只需要知道IoC是使用Spring时一定需要用到的核心功能,可以说如果项目不打算用IoC,那也没什么必要用Spring。
  • Spring Context:提供了Spring的上下文运行环境,主要用于,它本身也引入了Core和Beans模块的包,所以项目里引入它就可以不用引入前面两个了。

AOP(面向切面编程)相关:

  • Spring AOP:提供了面向切面编程的实现,具体内容后面会讲解,AOP是Spring另一大核心功能。
  • Spring Aspects:AspectJ也是一个AOP框架,和Spring AOP不同,该模块主要提供了集成整合AspectJ的支持。可以说是提供了实现AOP的另一个选择,当然AspectJ和Spring AOP虽然都是面向切面编程的实现,但是有很多差异,并不能简单的相互替换。

数据访问相关:

  • Spring JDBC:提供了对jdbc api的封装。jdbc就是java用来访问数据库的API,Spring JDBC对其进行了封装,使用起来更方便。(当然目前国内用mybatis的更多些)
  • Spring ORM : 用于支持Hibernate、ibatis等ORM工具,也就是和这些ORM框架集成整合用的。ORM简单说就是将数据库中的表转换为java里的对象相互映射,这样操作数据就方便了一些。所以这也是(当然目前国内还是用mybatis更多)
  • Spring JMS:提供了对jms api的封装。jms是java消息服务的API,算是另一种数据访问的方式,主要用于不同应用或分布式系统中发送消息,进行异步通信。和Spring JDBC一样,Spring JMS是对jms api的封装,简化了其使用。

Web开发相关:

  • Spring Web:提供了一些针对Web开发的功能和集成特征。

测试相关:

  • Spring Test:提供了一些对单元测试的辅助功能,通常要跟junit一起引入搭配食用。
,