Spring(一)——总体介绍
来源:互联网 发布:windows 没有远程桌面 编辑:程序博客网 时间:2024/06/06 09:55
前边讲述了用于处理数据流程的Struts2的框架,和用于操作数据的IBatis持久层框架,这篇博客开始总结一下spring框架,是进行对象管理,对象关联,解耦的一个中间层框架。SSH(Struts+Spring+hibernate)三大Spring在中间就起着一个承上启下的作用。好,首先我们先来看一下Spring框架的一些知识点,通过下边这张图来总括一下:
好,这篇博客咱们先来对Spring框架进行一个初步的了解。
一,框架介绍:
1,先看一下帮助文档的这张图,里边主要包括了Spring自身的功能,还有可以和其框架结合的一些框架,通过这张图可以看出,Spring框架和其他框架的集成能力是非常强的。
2,Spring是一个轻量级的IOC和AOP容器框架:
a,轻量级:程序实现不是很复杂,代码不是很多,占用资源不是很多,没有侵入性;
b,IOC(Inversion of Control 控制反转):对象创建责任的反转(重点,核心);
c, Aop(Aspect Oriented Programming):一种面向横切面编程的思想方式,可以进行功能性扩展,看前边的一篇转载的博客:面向横切面(AOP)编程
d,容器:可以容纳对象,并且可以控制对象的生命周期;
二,看一下使用步骤吧!(框架用多了,感觉步骤都大同小异)
1,还是拷贝jar包:
2,拷贝框架的核心配置文件,存放在src目录下:
3,编写框架的核心配置文件,将声明对象都交给Spring框架来创建,以及初始化,例如service层的类,action层类,dao层类等等,都可以交给Spring进行管理,看一个例子:
分析:a,框架创建对象的方式:
框架默认创建对象是单例的:scope="singleton"
当然action我们想要多例创建,需要设置:scope="prototype"
b,工厂BeanFactory,,如果使用BeanFactory来加载Spring配置文件,那么是在调用getBean时,框架调用对象的默认构造方法来创建对象。BeanFactory功能是对bean对象的生命周期进行管理的。(创建,初始化,销毁)。
c,ApplicationContext(推荐,也是框架默认的)
来用才对象来加载Spring配置文件,会在加载时解析配置文件,创建对象,而不是在getBean时创建。其实,ApplicationContext接口继承了BeanFactory,所以具备BeanFactory所有功能,同时增加扩展的功能,例如加载资源配置文件,国际化支持等!
4,如何测试,这里我们可以使用Junit(Java的单元测试进行测试)(我们现在是单独使用Spring为了是学习,后边会集成多个框架的)
a,先看一下Junit单元测试的使用方法:Junit4详解
b,利用beanFactory加载配置文件:
c, 利用ApplicationContext加载配置文件:
这就是Spring的简单使用步骤,当然还有配置文件的如何编写,Aop的使用等,后边会介绍到。
三,Sping框架的优缺点:
优点:
- 轻量级的容器框架,没有侵入性
- IoC更加容易组合对象之间的关系,通过面向接口进行编程,可以低耦合开发。
- 易于本地测试(Junit单元测试,不用部署服务器)
- AOP可以更加容易的进行功能扩展,遵循OCP开发原则。
- Spring默认对象的创建为单例的,我们不需要再使用单例的设计模式来开发单体类。
- Spring的集成很强大,另外可以对其他框架的配置进行一元化管理。
- Spring的声明式事务的方便使用。
缺点:
自我感觉是所有框架共有的,就是开发对设计要求较高,集成测试麻烦,对框架有一定的依赖性。
总而言之,Spring框架功能是非常强大的,单独使用可能感觉不是很深,和其他的框架结合使用,就会张显她的魅力了。
- Spring(一)——总体介绍
- Spring(一)——总体介绍
- Spring(一)——总体介绍
- Spring(一)——总体介绍
- Spring(一)——总体介绍
- Spring(一)——总体介绍
- Spring(一)——总体介绍
- Spring(一) 总体介绍
- Struts2(一)——总体介绍
- Struts2(一)——总体介绍
- Struts2(一)——总体介绍
- Struts2(一)——总体介绍
- Struts2(一)——总体介绍
- Struts2(一)——总体介绍
- spring揭秘(一)——spring框架总体结构
- Hibernate框架(一)——总体介绍
- SpringMVC(一)——流程框架总体介绍
- Hibernate框架(一)——总体介绍
- Android安卓的发展史
- Selenium怎样利用Xpath定位元素
- 如何解决数据库中插入数据中文乱码问题(简单并完美解决数据库中插入数据中文乱码问题)
- Android okHttp网络请求之文件上传下载
- MyBatis ( 三)分页查询
- Spring(一)——总体介绍
- 欢迎使用CSDN-markdown编辑器
- loadrunner录制脚本怎么设置字体编码
- group by按需求保留数据——mysql
- 优化代码:/O 选项
- Linux驱动编程——一些重要的数据结构
- 如何利用apache-apollo构建MQTT服务器
- Vue父子组件创建
- js赋值html