Spring入门学习笔记第一课——spring简介以及包结构

前言

之前跟着书籍学习过一遍spring,但是也仅仅只限于了解,对于很多知识点还是不够了解,紧接着就开始参加工作,成为一名光荣的实习程序熊,整天忙着和业务逻辑打架,对于之前所学的逐渐开始淡忘,所以决定再系统的学习一遍Spring,巩固一下自己的知识。

鉴于我还是一名实习熊,所以阐述的都是自己的个人理解,肯定会有不准确,甚至错误的地方,欢迎大家指正。

spring是什么?

在谈论这个问题之前,应该先讨论另一个问题, 什么是框架为什么要用框架
什么是框架
在百度百科上对 框架是这么解释的:
框架是一个基本概念上的 结构,用于去解决或处理复杂的问题,有一种定义认为框架是可被开发应用者定制使用的应用骨架

根据上面的解释,我理解为:

框架是针对某一类问题的处理工具,她在项目中的作用是针对这一类问题,提供一种通用的解决办法,她负责建立处理该类问题的应用流程,但是不负责处理具体的业务逻辑。

同样,我在网上看到过这么一句话:
IT语境中的框架,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构。在此结构上可以根据具体问题扩展、安插更多的组成部分,从而更迅速和方便地构建完整的解决问题的方案。
————补充解释————
也就是说:
1)框架本身一般不完整到可以解决特定问题;
2)框架天生就是为扩展而设计的;
3)框架里面可以为后续扩展的组件提供很多辅助性、支撑性的方便易用的实用工具(utilities),也就是说框架时常配套了一些帮助解决某类问题的库(libraries)或工具(tools)。
4)约束性:针对解决特定问题的软件框架会首先定义问题的边界,进而将相关的软件组件约束在这个边界内,保持框架在解决问题方面上的内聚性。

为什么要用框架
1.
在很多讲框架的书籍上我都阅读过类似的一段话:
企业应用软件越来越,软件技术也越来越复杂,因此,开发人员常常忙于对技术的研发和应用,却忽略了对业务本身复杂逻辑的分析,为了减少开发人员在软件技术上的时间,把精力放于对业务逻辑的理解上,市场上出现了很多解决这一问题的框架。

2.
框架在开发中,还有一点特别重要的作用:
框架的约定,在开发中,有许多细节和功能取决于开发过程中的约定,例如项目的模块的划分,MVC的分层,以及propertis/xml文件的存放等,我在最开始的时候对于这些是不在意的,从而导致一个后果:写完代码过一个月再看,就算注释在清晰,看着也头疼。
相对来说,框架中的约定,包含的一些思想,比如MVC等,在真正用到项目中时,能够使项目结构更清晰。

讨论完这两个问题,就可以开始我们的第一个正题了: 什么是Spring?

首先,spring是一个开源的框架,她的主要特点如下:
1.spring的核心是控制反转(IOC),有些书上也叫依赖注入(DI)。
这了是我看到的一片博客,里面详细阐述了DI. 点击查看
通过配置文件来完成对象之间的依赖注入,她提倡面向接口编程。
2.spring提供了声明式事务管理。
3.spring提供了简单有效的JDBC应用。
4.spring提供了强大的MVC框架——springMVC
这里只是阐述一下spring的一些功能,接下来开始进入正题,开始我的Spring学习之旅。
我是用的spring版本为4.3.6版。该项目由20个jar文件构成。

将这些功能模块按照功能划分大约为六个模块。

1、core container:主要提供基础支持
core模块是整个框架的基础核心工具类,其他所有的模块都要依赖core模块。
beans模块同样是其他模块所依赖的,这个模块提供了配置文件的访问,以及bean管理和IOC操作。
context模块依赖core和bean,对bean进行了大量的扩展。
其中还有context-support模块,该模块集成了第三方类库,扩展了context模块.
expression模块:EL表达式,操纵数据。
2、数据操作模块
jdbc:提供了访问jdbc数据的方法.
ORM:提供了对ORM框架的支持.
OXM:提供了Object/XML映射的支持.
JMS:提供对JMS的支持.
还应该包含messaging模块,提供了消息发送的基础支持.
3.Web模块,该模块提供了对web的支持.
web:提供了对web功能的基础支持,比如文件上传等.
webmvc:包含了springmvc和rest Web service的实现.
websocket:提供了websocket方式的通讯支持.
webmvc-protlet:提供了对protlet的支持.
4.面向切面模块(AOP)和设备
aop:提供了面向切面的基础支持.比如,允许开发者定义方法拦截器和切入点,以此来将业务逻辑和系统服务进行解耦。
Aspects:提供了对AspectJ的集成.
instrument模块提供了在普通应用服务器中使用到的类设备支持和加载器实现。
instrument-tomcat模块包含了Spring的Tomcat设备代理。
5.test测试模块
test:提供了对junit和testNG的单元测试和集成测试.
到此,算是对spring的基本构成有了一定的了解,在了解spring的构成之后,我们才可以继续探讨下一个问题:
为什么使用spring?

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值