初识 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. appcompat_v7 引起的新建Android工程编译不过的问题 (转载)

    转自:http://blog.csdn.net/zhao7134/article/details/34449641 eclipse adt 上新建基于Android4.4(kk)的Android项目时 ...

  2. selenium中同名的class如何区分

    例子是使用了selenium3.7.0 , python 3.6.2  , 火狐57版本 以下是例子的源码: <!DOCTYPE html><!-- <html> --& ...

  3. bzoj 4184: shallot【线性基+时间线段树】

    学到了线段树新姿势! 先离线读入,根据时间建一棵线段树,每个节点上开一个vector存这个区间内存在的数(使用map来记录每个数出现的一段时间),然后在线段树上dfs,到叶子节点就计算答案. 注意!! ...

  4. [App Store Connect帮助]七、在 App Store 上发行(2.1)设定价格与销售范围:为您的 App 设定价格

    在您提交 App 以供审核之前,您必须为您的 App 设定一个价格,该价格将用于 App Store 的所有地区.如果您没有<付费应用程序协议>,则只能选择免费. 必要职能:“帐户持有人” ...

  5. 水题不AC,自挂二叉树——Chemist

    学长让我们刷USACO的水题果然是有道理的,做了四道挂了两道...细节处理一定要小心!大概都是NOIP Day1 T1的难度,但是一定要考虑全面否则还是凉凉啊. 一.USACO1.1贪婪的送礼者 题目 ...

  6. jmeter(十七)逻辑控制器

    JMeter中的Logic Controller用于为Test Plan中的节点添加逻辑控制器. JMeter中的Logic Controller分为两类:一类用来控制Test Plan执行过程中节点 ...

  7. leetcode 484. Find Permutation 思维题

    https://leetcode.com/contest/leetcode-weekly-contest-16a/problems/find-permutation/ 设原本的数字是0,那么按照它的D ...

  8. python vs java的rsa加密

    首先:java的加密解密模块需要更加精细的算法细节指定 java的加密方式 javax.crypto.Cipher,定义的获取方式 tatic Cipher getInstance(String tr ...

  9. 关于表单清空的细节(reset函数或者class="reset"属性)

    在需要清空的表单的情况下, 如果是在页面中 那么就添加属性 class="reset"  也即是 <button class="reset" value= ...

  10. AJPFX实践 java实现快速排序算法

    快速排序算法使用的分治法策略来把一个序列分为两个子序列来实现排序的思路: 1.从数列中挑出一个元素,称为“基准“2.重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面 ...