Spring(一)——总体介绍

前边讲述了用于处理数据流程的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进行管理,看一个例子:

[html] view plaincopyprint?

  1. <!-- 声明Action对象 -->
  2. <bean id="loginAction" class="com.ljh.struts2.action.LoginAction" scope="prototype"></bean>

分析: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加载配置文件:

[java] view plaincopyprint?

  1. //加载配置文件,创建Spring的应用环境
  2. String path = "applicationContext.xml";
  3. Resource resource = new ClassPathResource(path);    //推荐
  4. //Resource resource = new FileSystemResource("src/applicationContext.xml");
  5. //Resource resource = new ServletContextResource(servletContext, path); //如果文件存放到WEB-INF目录下
  6. BeanFactory factory = new XmlBeanFactory(resource);
  7. //从Spring环境中获取对象
  8. Object obj = factory.getBean("loginAction");
  9. LoginAction action = (LoginAction)obj ; </span>

c,  利用ApplicationContext加载配置文件:

[java] view plaincopyprint?

  1.   ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
  2. Object obj = ac.getBean("loginAction");

  这就是Spring的简单使用步骤,当然还有配置文件的如何编写,Aop的使用等,后边会介绍到。

三,Sping框架的优缺点:

优点:

  • 轻量级的容器框架,没有侵入性
  • IoC更加容易组合对象之间的关系,通过面向接口进行编程,可以低耦合开发。
  • 易于本地测试(Junit单元测试,不用部署服务器)
  • AOP可以更加容易的进行功能扩展,遵循OCP开发原则。
  • Spring默认对象的创建为单例的,我们不需要再使用单例的设计模式来开发单体类。
  • Spring的集成很强大,另外可以对其他框架的配置进行一元化管理。
  • Spring的声明式事务的方便使用。

缺点:

自我感觉是所有框架共有的,就是开发对设计要求较高,集成测试麻烦,对框架有一定的依赖性。

总而言之,Spring框架功能是非常强大的,单独使用可能感觉不是很深,和其他的框架结合使用,就会张显她的魅力了。

时间: 2024-08-28 18:40:40

Spring(一)——总体介绍的相关文章

大数据hadoop领域技术总体介绍(各个组件的作用)

2019/2/16 星期六 大数据领域技术总体介绍(各个组件的作用)1.大数据技术介绍大数据技术生态体系:Hadoop 元老级分布式海量数据存储.处理技术系统,擅长离线数据分析Hbase 基于hadoop 的分布式海量数据库,离线分析和在线业务通吃Hive sql 基于hadoop 的数据仓库工具,使用方便,功能丰富,使用方法类似SQLZookeeper 集群协调服务Sqoop 数据导入导出工具Flume 数据采集框架 //经常会结合kafka+flume数据流 或者用于大量的日志收集到hdfs

飞达资讯App总体介绍及关系架构图

飞达资讯App总体介绍: 下图为飞达资讯App的关系架构图: 该App关系架构图所需的图片云盘链接地址:http://pan.baidu.com/s/1gfHIe4b 提取密码:x1nr 该App的云盘下载地址:http://pan.baidu.com/s/1eS8WGXs 提取密码:5eqe 由于作者水平有限和时间仓促,该App可能存在一些疏漏和不当之处,敬请读者批评指正. 作者联系方式: 电话:15223328653,QQ:2099904576,邮箱:[email protected]

Spring Boot的介绍

<Spring Boot基础教程> 第1节 Spring Boot的介绍   一.课程简介 1)Spring Boot简介 使用Java做Web应用开发已经有近20年的历史了,从最初的Servlet1.0一步步演化到现在如此多的框架,库以及整个生态系统.经过这么 长时间的发展,Java作为一个成熟的语言,也演化出了非常成熟的生态系统,这也是许多公司采用Java作为主流的语言进行服务器端开发的原因,也是为什么Java一直保持着非常活跃的用户群.Android 最受Java开发者喜好的框架当属Sp

ABP总体介绍

ABP总体介绍 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序框架和项目模板. ASP.NET Boilerplate 基于DDD的经典分层架构思想,实现了众多DDD的概念(但没有实现所有DDD的概念). ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上

攻城狮在路上(贰) Spring(二)--- Spring IoC概念介绍

一.IoC的概念: IoC(控制反转)是Spring容器的核心.另一种解释是DI(依赖注入),即让调用类对某一个接口的依赖关系由第三方注入,以移除调用类对某一个接口实现类的一览. 定义如此,由此可见,在面向接口编程的情况下,IoC可以很好的实现解耦,可以以配置的方式为程序提供所需要的接口实现类. 在实际程序开发中,我们只需要提供对应的接口及实现类,然后通过Spring的配置文件或者注解完成对依赖类的装配.二.IoC的类型: 1.通过构造函数: 此种方式的缺点是,在构造函数中注入之后一般会作为一个

JS总体介绍

一. 总体介绍 结合近半年来前端的项目的经验,这里梳理一下JS常用知识,方便自己日后温习查找,同时给广大JS入门者提供一些帮助,文章中如有错误,欢迎指出. 这里从JS常用事件.Dom方法.数组.Dom操作.offset专题.event家族.Scroll家族.动画.闭包.面向对象基础等方面着重介绍一套JS相对完善的前端JS体系.

基于DDD的现代ASP.NET开发框架--ABP系列之1、ABP总体介绍

点这里进入ABP系列文章目录 ABP总体介绍: ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序框架和项目模板. ASP.NET Boilerplate 基于DDD的经典分层架构思想,实现了众多DDD的概念(但没有实现所有DDD的概念). ABP的官方网站:http://www.aspnetboilerplate

多线程:多线程设计模式(一):总体介绍

多线程设计模式(一):总体介绍 多线程开发可以更好的发挥多核cpu性能,常用的多线程设计模式有:Future.Master-Worker.Guard Susperionsion.不变.生产者-消费者 模式:jdk除了定义了若干并发的数据结构,也内置了多线程框架和各种线程池:    锁(分为内部锁.重入锁.读写锁).ThreadLocal.信号量等在并发控制中发挥着巨大的作用. 多线程设计模式:1.Single Threaded Execution Pattern   [同一时刻只允许一个线程操作

AngularJs学习笔记1——总体介绍

这周末在家呆了两天,正好中午闲暇时间继续分享Angularjs相关,今天主要分享Angularjs总体介绍及数据绑定部分内容,下面直接进入主题. 1.基本概念: AngularJS是为了克服HTML在构建应用上的不足而设计的.HTML是一门很好的伪静态文本展示设计的声明式语言,但要构建WEB应用的话它就显得乏力了.所以我做了一些工作(你也可以觉得是小花招)来让浏览器做我想要的事,通常,我们是通过以下技术来解决静态网页技术在构建动态应用上的不足. 2.版本 angualrjs1.x:目前比较稳定版