一、概念。

Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。

◆目的:解决企业应用开发的复杂性

◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能

◆范围:任何Java应用

简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

◆轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。

◆控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

◆面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

◆容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。

◆框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。

◆MVC——Spring的作用是整合,但不仅仅限于整合,Spring 框架可以被看做是一个企业解决方案级别的框架。客户端发送请求,服务器控制器(由DispatcherServlet实现的)完成请求的转发,控制器调用一个用于映射的类HandlerMapping,该类用于将请求映射到对应的处理器来处理请求。HandlerMapping 将请求映射到对应的处理器Controller(相当于Action)在Spring 当中如果写一些处理器组件,一般实现Controller 接口,在Controller 中就可以调用一些Service 或DAO 来进行数据操作 ModelAndView 用于存放从DAO 中取出的数据,还可以存放响应视图的一些数据。 如果想将处理结果返回给用户,那么在Spring 框架中还提供一个视图组件ViewResolver,该组件根据Controller 返回的标示,找到对应的视图,将响应response 返回给用户。

所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。

二、Spring核心

Spring一共有7个模块组成如下图:

这几个模块的功能包括:
Core包是框架的基本组成部分,它提供依赖注射及Bean容器的管理功能。它的BeanFactory消除了应用对Singleton和Factory的依赖。
AOP包提供了与AOP联盟兼容的AOP实现,允许定义方法、拦截器、切入点等。通过AOP,在应用程序逻辑上实现了关注点的横切分离。
Context包构建于Bean包之上,它提供了一种框架式的Bean访问方式,类似JNDI机制,Context包提供了Bean包之上的功能扩展。
DAO包提供了JDBC抽象,消除了冗长的JDBC编码,并转译了数据库厂商特有的错误代码。该包也提供了编程式和声明式的事务管理。
ORM包为流行的关系/对象映射方案提供集成的借口。
WebMVC包提供了面向Web应用的MVC实现Spring的MVC和Ioc容器的整合提供了较大的灵活性
Web包提供了面向Web的综合特性,如使用Servlet监听器的Context初始化、文件上传等功能。此外它也用于同其他Web框架的集成。
三、综述。
Spring为我们访问底层的J2EE容器服务更为简单,有了Spring我们的开发效率将大大提高。

转载于:https://www.cnblogs.com/iplus/p/4490372.html

菜鸟学习Spring——初识Spring相关推荐

  1. Spring学习-初识Spring

    这几天一直在看Spring.虽然已经看到了第3章,但是感觉没多大收获,所以我又回过头,再温习一下. Spring是什么? Spring是一个开源框架,最早由Rod Johnson创建,Spring是为 ...

  2. 菜鸟学习Spring——60s配置XML方法实现简单AOP

    一.概述. 上一篇博客讲述了用注解的形式实现AOP现在讲述另外一种AOP实现的方式利用XML来实现AOP. 二.代码演示. 准备工作参照上一篇博客<菜鸟学习Spring--60s使用annota ...

  3. 初识Spring Security

    最近来写下Spring Security 文章目录 初识Spring Security 什么是Spring Security 常用安全框架 如何学习Spring Security 本文小结 初识Spr ...

  4. java 知识积累_java学习知识积累-spring常用注解

    java学习知识积累-spring常用注解 类的分层注解,由于我们后台开发都是分为三层进行开发的,所以Spring框架提供了三种对于不同层的注解方式: 控制层:@Controller 服务层:@Ser ...

  5. Spring 01 初识 Spring

    初识 Spring 文章目录 初识 Spring 一.学习任务 二.本章目标 三.Spring框架简介 3.1.Spring框架作用与优点 3.2.Spring框架体系结构介绍 3.3.Spring框 ...

  6. 初识Spring快速了解Spring概念

    spring初识 1.框架 ​ 框架就是一些类和接口的集合,通过这些类和接口协调来完成一系列的程序实现.JAVA框架可以分为三层:表示层,业务层和物理层.框架又叫做开发中的半成品,它不能提供整个WEB ...

  7. spring el表达式解析_Spring之旅第一篇-初识Spring

    目录 一.概述 二.模块 三.动手创建 一.概述 只要用框架开发java,一定躲不过spring,Spring是一个轻量级的Java开源框架,存在的目的是用于构建轻量级的J2EE应用.Spring的核 ...

  8. Spring 初识Aop JDK动态代理实现 原理初显

    Spring 初识Aop JDK动态代理实现 原理初显 一.项目结构 二.具体步骤: 1.创建maven项目 创建好包结构 2.写一个TestDao接口 及实现类 3. 写一个自己的切面类 4.jav ...

  9. SpringMVC学习日记 1.Spring框架

    SpringMVC学习日记 1.Spring框架 Spring简介 Spring框架是一个开源框架,由Rod Johnson组织和开发,生产目的在于简化企业级应用的开发. 主要特性 非侵入(no-in ...

最新文章

  1. linux 内核 fork,《Linux内核分析》之分析fork函数对应的系统调用处理过程
  2. Adaboost通俗易懂入门教程
  3. 朝聚眼科完成4亿元B轮融资,兰馨亚洲和阳光融汇投资...
  4. 4.类型设计规范《.NET设计规范》
  5. [独库骑行之我们路过沙漠]塔克拉玛干的边缘
  6. jQuery(一)—— jQuery 概述 / jQuery 选择器 / jQuery 样式操作 / jQuery 效果
  7. 机器人瓦力机械舞_25个与机器人有关的“前卫”知识,你知道几个?
  8. python cnn程序_python cnn训练(针对Fashion MNIST数据集)
  9. @JsonView的简单使用
  10. 【原创】我所认识的银行业务之旅(开篇)
  11. java操作Excel、PDF文件
  12. C#链接SQL知识点
  13. 不动点迭代以及其收敛性
  14. python中元组拆包_Python 元组拆包和具名元组解析
  15. 真心话大冒险经典问题
  16. 高速公路ETC卡签之我见8-OBU发行
  17. 【说透中台】05 | D4模型:中台规划建设方法论概述
  18. php读取excel文件数据
  19. 适用于多类移动场景的融合认证机制设计
  20. UI自动化_python+selenium京东前台购物流程

热门文章

  1. Android开发笔记(五十七)录像录音与播放
  2. php折半查找算法,PHP如何实现折半查找算法
  3. 求数组第二大元素 和 字符串拷贝的实现
  4. RxJava学习(四利用RxJava打造自己的RxBus)
  5. java易忘代码备份
  6. 统计代码行数的方法梳理
  7. Raid及mdadm命令
  8. JS 运行、复制、另存为 代码。
  9. X3950通过MGMT关机产生NMI,PCI,LOG报错
  10. 华硕 WL-566gM之信号强度