初识 Spring

  框架可以帮助我们构建规范的、优秀的应用程序,简化烦琐的编码过程。

  Spring 是一个非常著名的轻量级的企业级开源框架,Spring 的目标是使 Java EE 更易用并促进良好的编程习惯。到今天,Spring 已经发展成为一个功能丰富而且易用的集成框架,其核心是一个完整的基于控制反转(IoC)的轻量级容器,用户可以使用它建立自己的应用程序。在容器之上,Spring 提供了大量实用的服务,将很多高质量的开源项目集成到统一的框架之上。Spring 框架的两大核心概念(思想)是 IoC 和 AOP 。

  Spring 致力于 Java EE 应用的各种解决方案,而不是仅仅专注于某一层的方案。可以说,Spring 是企业应用开发的 "一站式" 选择,Spring 贯穿表现层、业务层、持久层。Spring 并不想取代那些已有的框架,而是以高度的开放性与它们无缝整合。

  Spring 是一个轻量级框架,它大大简化了 Java 企业级开发、提供了强大、稳定的功能,又没有带来额外的负担,让人们在使用它做每件事情的时候都有得体和优雅的感觉。 Spring 有两个主要目标:一是让现有技术更易于使用,二是促进良好的编程习惯(或者称为最佳实践)。

  Spring 是一个全面的解决方案,但它坚持一个原则:不重新发明轮子。已经有较好解决方案的领域,Spring 绝不做重复性的实现。例如,对象持久化和ORM,Spring 只是对现有的 JDBC、 MyBatis、Hibernate 等技术提供支持,使之更易用,而不是重新做一个实现。

  Spring 框架由大约 20 个功能模块组成。这些模块被分成六个部分,分别是 Core Container,DataAccess / Integration、Web、AOP( Aspect Oriented Programming)、 Instrumentation 及 Test。Spring Core 是框架的最基础部分,提供了 IoC 特性。 Spring Context 为企业级开发提供了便利和集成的工具。 Spring AOP 是基于 Spring Core 的符合规范的面向切面编程的实现。 Spring JDBC 提供了 JDBC 的抽象层,简化了 JDBC 编码,同时使代码更健壮。 Spring ORM 对市面上流行的 ORM 框架提供了支持。 Spring Web 为 Spring 在 Web 应用程序中的使用提供了支持。

Spring 体系结构

企业级应用开发

  企业级应用是指那些为商业组织、大型企业而创建并部暑的解决方案及应用。这些大型企业级应用的结构复杂,涉及的外部资源众多,事务密集、数据规模大、用户数量多,有较强的安全性考虑和较高的性能要求。

  当代的企业级应用绝不可能是一个个的独立系统。在企业中,一般都会部署多个进行交互的应用,同时这些应用又都有可能与其他企业的相关应用连接,从而构成一个结构复杂的、跨越 Internet 的分布式企业应用集群。作为企业级应用,不但要有强大的功能,还要能够满足未来业务需求的变化,易于扩展和维护。
 
  传统 Java 解决企业级应用问题时的“重量级”架构体系,使它的开发效率、开发难度和实际的性能都令人失望。正在人们苦苦寻找解决办法的时候,Spring 以一个 "救世主" 的形象出现在广大的 Java 程序员面前。Spring 的作者 Rod Johnson,2002 年他编写了《 Expert One-on-One Java EE 设计与开发》一书。在书中,他对传统的 Java EE 技术日益臃肿和低效提出了质疑,他觉得应该有更便捷的做法,于是提出了 Interface 21,也就是 Spring 框架的雏形。他提出了技术以实用为准的主张,引发了人们对“正统”Java EE 的反思。2003 年 2 月,Spring 框架正式成为一个开源项目,并发布于 SourceForge 中。
 
  Spring 致力于 Java EE 应用的各种解决方案,而不是仅仅专注于某一层的方案。可以说,Spring 是企业应用开发的 "一站式" 选择,Spring 贯穿表现层、业务层、持久层。Spring 并不想取代那些已有的框架,而是以高度的开放性与它们无缝整合。
 
 
 Spring 资源包下载
  (1)Spring 资源下载地址:http://repo.spring.io/release/org/springframework/spring/ 
   (2)以 Spring Framework 3.2.13 版本为例,下载的压缩包为: spring-framework-3.2.13.RELEASE-dist.zip 。
   (3)spring-framework-3.2.13.RELEASE-dist.zip 解压后文件目录为 docs、libs、schema 。
        docs:该文件夹下包含 Spring 的相关文档,包括 API 参考文档、开发手册。
        libs:该文件夹下存放 Spring 各个模块的 jar 文件,每个模块均提供三项内容:开发所需的 jar 文件、以 -javadoc·后缀表示的 API 和以 -sources 后缀表示的源文件。
        schema:配置 Spring 的某些功能时需要用到的 schema 文件,对于已经集成了 Spring 的 IDE 环境(如 MyEclipse),这些文件不需要专门导入。
 
  说明:作为开源框架,Spring 提供了相关的源文件。在学习和开发过程中,可以通过阅读源文件,了解 Spring 的底层实现。这不仅有利于正确理解和运用 Spring 框架,也有助于开拓思路,提升自身的编程水平。

   

 

初识 Spring 框架的更多相关文章

  1. 初识Spring框架实现IOC和DI(依赖注入)

    学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的, IoC是 ...

  2. 【10分钟学Spring】:(一)初识Spring框架

    简介 Spring是一个轻量级的企业级的Java开发框架.主要是用来替代原来更加重量级的企业级Java技术,比如EJB(Enterprise JavaBean).Java数据对象(Java Data ...

  3. 初识Spring框架

    一.Ioc 1)概念:Ioc(Inversion Of Control)控制反转,也被称为依赖注入DI(Dependency Injection),是面向对象编程的一种思想. 2)作用:用来减低程序代 ...

  4. 初识Spring Boot框架(二)之DIY一个Spring Boot的自动配置

    在上篇博客初识Spring Boot框架中我们初步见识了SpringBoot的方便之处,很多小伙伴可能也会好奇这个Spring Boot是怎么实现自动配置的,那么今天我就带小伙伴我们自己来实现一个简单 ...

  5. 初识Spring Boot框架

    前面的铺垫文章已经连着写了六篇了,主要是介绍了Spring和SpringMVC框架,小伙伴们在学习的过程中大概也发现了这两个框架需要我们手动配置的地方非常多,不过做JavaEE开发的小伙伴们肯定也听说 ...

  6. 初识Spring Boot框架和快速入门

    前面的铺垫文章已经连着写了六篇了,主要是介绍了spring和SpringMVC框架,小伙伴们在学习的过程中大概也发现了这两个框架需要我们手动配置的地方非常多,不过做JavaEE开发的小伙伴们肯定也听说 ...

  7. 深入理解Spring(一):初识Spring

    深入理解Spring(一):初识Spring 一. Spring介绍        Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnso ...

  8. Spring框架概述

    Spring是最流行的Java企业级应用开发框架,全球数以百万的开发者在使用Spring框架创建高性能.易测试.可重用的代码. Spring框架的核心特性可以应用于任何Java应用,但扩展的JavaE ...

  9. Spring 框架的架包分析、功能作用、优点,及jar架包简介

    Spring 框架的架包详解    Spring的作用     Spring的优势  由于刚搭建完一个MVC框架,决定分享一下我搭建过程中学习到的一些东西.我觉得不管你是个初级程序员还是高级程序员抑或 ...

随机推荐

  1. bzoj 3612: [Heoi2014]平衡【整数划分dp】

    其实就是-n~n中求选k个不同的数,和为0的方案数 学到了新姿势叫整数划分,具体实现是dp 详见:https://blog.csdn.net/Vmurder/article/details/42551 ...

  2. bzoj 1597: [Usaco2008 Mar]土地购买【斜率优化】

    按xy降序排序,把能被完全包含的去掉 然后就得到了x升序y降序的一个数组 然后方程就显然了:f[i]=min(f[j]+y[j+1]x[i]) 斜率优化转移 说起来我还不会斜率优化呢是不是该学一下了 ...

  3. 【SQL】从待选项中随机选一个

    由于SQL Server没有数组类型,所以在面对“从若干待选项中选一个”这种需求时,往往要采取变通办法,比如弄个‘a|b|c’这样的字符串然后对字符串进行处理:又或者把待选项塞进一个临时表,然后把问题 ...

  4. java String, StringBuffer ,StringBulider 区别

    1. String 是不可变的(immutable): 创建后不能修改: 2. StringBuffer 线程安全的,可变字符串: 3. StringBuilder 线程不安全,所以性能比较高

  5. 数据结构之splay树

    https://www.bilibili.com/video/av19879546 https://blog.csdn.net/u014634338/article/details/42465089 ...

  6. 离散化+线段树/二分查找/尺取法 HDOJ 4325 Flowers

    题目传送门 题意:给出一些花开花落的时间,问某个时间花开的有几朵 分析:这题有好几种做法,正解应该是离散化坐标后用线段树成端更新和单点询问.还有排序后二分查找询问点之前总花开数和总花凋谢数,作差是当前 ...

  7. 快速体验openstack-用devstack安装openstack

    官网安装说明: --2014年11月15日14:14:21 安装环境:Ubuntu12.04,安装官网的说明遇到了小问题,记录在这里 --http://docs.openstack.org/devel ...

  8. P1440 求m区间内的最小值

    题目描述 一个含有n项的数列(n<=2000000),求出每一项前的m个数到它这个区间内的最小值.若前面的数不足m项则从第1个数开始,若前面没有数则输出0. 输入输出格式 输入格式: 第一行两个 ...

  9. [转]在ubuntu上安装chrome浏览器

    原文链接: https://www.linuxidc.com/Linux/2013-10/91857.htm --------------------------------------------- ...

  10. java 生成特定范围内的随机数

    /** * 生成[1, max]之间的随机数 */ public static Integer getRandomNumber(Integer max) { Random rd = new Rando ...