Spring 框架介绍

时间:2021-01-27 09:50:21

Spring 框架介绍
Spring 框架模块
Spring开发环境搭建(Eclipse)
创建一个简单的Spring应用
Spring 控制反转容器(Inversion of Control – IOC)
理解依赖注入(DI – Dependency Injection)
Bean XML 配置(1)- 通过XML配置加载Bean
Bean XML 配置(2)- Bean作用域与生命周期回调方法配置
Bean XML 配置(3)- 依赖注入配置
Bean XML 配置(4)- 自动装配
Bean 注解(Annotation)配置(1)- 通过注解加载Bean
Bean 注解(Annotation)配置(2)- Bean作用域与生命周期回调方法配置
Bean 注解(Annotation)配置(3)- 依赖注入配置
Bean Java配置
Spring 面向切面编程(AOP)
Spring 事件(1)- 内置事件
Spring 事件(2)- 自定义事件


Spring是一个JEE开发框架,开源,轻量级,功能强大。

JEE - Java Enterprise Edition / Java企业版
主要用于开发企业软件的Java版本。企业软件例子:会计软件、帐单管理、业务流程管理、CMS、CRM、ERP等。

Spring框架的核心特性是依赖注入(DI)与面向切面编程(AOP),Spring框架可以看作是一个控制反转的容器。尽管Spring主要用于JEE应用开发,但实际上这2个核心特性可用于任何Java项目。

Spring框架是Java EE开发中最流行的框架,已经成为JEE事实上的标准,全世界的开发人员都在使用Spring框架开发各种应用。

Spring框架是澳大利亚计算机专家Roderick B. Johnson于2002年发布,诞生以来发布了很多版本,目前最新版是5.0

版本 时间 备注
0.9 2002
1.0 2003 正式发布
2.0 2006
3.0 2009
4.0 2013
5.0 2017

Spring框架优点

  • 松耦合,组件(Bean)之间依赖很松,模块可以轻松替换
  • 简单,非侵入式,组件(Bean)本身只是简单的Java对象,无需任何特殊处理,非常简单

依赖注入/DI(控制反转/IOC)

Spring框架2个核心技术之一是依赖注入(Dependency Injection / DI)。

Java程序中,Java类是基本的代码组织单位。当某个类要使用另一个类时,自然的做法是创建另一个类的对象,然后调用该对象的方法。这样做在程序规模较小时没什么问题,但当程序规模很大时这些类之间过于紧密的耦合会导致后续开发维护困难。例如要替换其中某个类,就不得不修改所有涉及这个类的代码。

控制反转(Inversion of Control / IoC)与依赖注入(Dependency Injection / DI)就是为解决这个问题。上面提到类里面创建另外一个类对象会造成耦合太紧,Spring框架就把创建类的行为从类中拿出来放到Spring框架里去做,类与类之间创建关系就没有了。

本来由类控制其所依赖的类对象的创建,现在把创建动作放到Spring框架里了,由框架控制所有类对象的创建,这就是“控制反转”。

框架创建了类所依赖的对象,然后把这些对象传给(注入)依赖它们的类,这就是“依赖注入”。

所以可以看到,Spring框架中控制反转(Inversion of Control / IoC)与依赖注入(Dependency Injection / DI)实际上讲的是同一个事情,只是角度不同。

关于依赖注入,后续会有详细介绍。

面向切面编程/AOP

Spring框架另外一个核心技术是面向切面编程(Aspect Oriented Programming/AOP)。

面向切面编程的主要作用是,在不修改源代码的情况下,可以给目标类打补丁,让其执行补丁中的代码。

例如,用户类中有个登录方法,现在需要加用户登录日志。使用AOP就不需要修改用户登录方法,只需把日志代码注入到用户登录方法前后,让其执行。日志代码就是“切面”,插入代码的地方(用户类的登录方法)就是“连接点”。

关于AOP后续会有详细介绍。

注意:依赖注入/DI(控制反转/IOC)与 面向切面编程/AOP都是基于Java的反射机制。

Spring 框架介绍的更多相关文章

  1. [翻译]Spring框架参考文档(V4.3.3)-第二章Spring框架介绍 2.1 2.2 翻译--2.3待继续

    英文链接:http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/overview.ht ...

  2. Spring框架介绍和原理

    SpringMVC框架介绍 1) Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面. Spring 框架提供了构建 Web 应用程序的全功 ...

  3. Spring 框架介绍 [Spring 优点][Spring 应用领域][体系结构][目录结构][基础 jar 包]

    您的"关注"和"点赞",是信任,是认可,是支持,是动力...... 如意见相佐,可留言. 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新. 目录 ...

  4. Spring框架介绍及使用

    Spring框架—控制反转(IOC)1 Spring框架概述1.1 什么是Spring1.2 Spring的优点1.3 Spring的体系结构2 入门案例:(IoC)2.1导入jar包2.2目标类2. ...

  5. Spring框架介绍及使用(转载)

    原文链接 Spring框架—控制反转(IOC) 1 Spring框架概述1.1 什么是SpringSpring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod ...

  6. (转)spring 框架介绍

    转自:http://www.cnblogs.com/wawlian/archive/2012/11/17/2775435.html 1.Spring MVC简介 Spring MVC框架是有一个MVC ...

  7. Spring框架核心知识介绍

    一:spring框架介绍   1.spring框架是为了解决复杂的企业级应用而创建的, 使用Spring可以让简单的JavaBean实现之前只有EJB才能完成的事情.但是Spring不仅仅局限于服务器 ...

  8. spring框架学习笔记1:搭建测试

    Spring框架介绍: Spring框架涵盖了web.service.dao三层,本身是一个存放对象的容器 形象来说:Spring是项目中对象管家 Spring框架的两大核心思想:控制反转(IOC). ...

  9. Spring框架模块

    Spring 框架介绍 Spring 框架模块 Spring开发环境搭建(Eclipse) 创建一个简单的Spring应用 Spring 控制反转容器(Inversion of Control – I ...

随机推荐

  1. 理解 Neutron FWaaS - 每天5分钟玩转 OpenStack(117)

    前面我们学习了安全组,今天学习另一个与安全相关的服务 -- FWaaS.理解概念 Firewall as a Service(FWaaS)是 Neutron 的一个高级服务.用户可以用它来创建和管理防 ...

  2. Groovy获取json和xml数据

    如果是xml就用这个 // to read a node from your Response def grUtils = new com.eviware.soapui.support.GroovyU ...

  3. IIs上MP4、及SVG格式加载失败解决方式

    部署项目是遇到网页播放mp4文件时候,MP4文件不能加载的问题.那是因为IIS上MIME类型中没有添加MP4的格式,添加一下即可. 解决方案: 1.在IIS上选中你的网站,然后点击右边的MIME类型, ...

  4. JavaWeb核心编程之Tomcat安装和配置

    什么是JavaWeb 在Sun的Java Servlet规范中, 对Java Web应用做了这样的定义: "Java Web应用由一组Servlet, HTML页面, 类, 以及其他可以被绑 ...

  5. java Log日志规范

    Overview 一个在生产环境里运行的程序如果没有日志是很让维护者提心吊胆的,有太多杂乱又无意义的日志也是令人伤神.程序出现问题时候,从日志里如果发现不了问题可能的原因是很令人受挫的.本文想讨论的是 ...

  6. 如何将md文件转换成带目录的html文件

    配置环境node 去官网下一个node安装包,下一步下一步: 由于现在的node都自带npm,直接 npm install i5ting_toc 这样安装好了i5ting_toc这个包, 进入你实现准 ...

  7. MyEclipse10+Flash Builder4+BlazeDS+Tomcat7配置J2EE Web项目报错(一)

    1.错误描述 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help ...

  8. QWaitConditioin的思考1

    16:50:392017-03-31 本文章为原创,如若引用请指明出处,否则追责. 以 生产.消费者的例子说明 #include <QtCore/QCoreApplication>#inc ...

  9. SocketIO Client

    package com.x061.socketio.demo; import org.json.JSONObject; import io.socket.client.IO; import io.so ...

  10. Ubuntu16&period;04中禁用UTC解决双系统时间问题

    解决方法一 sudo hwclock -w --localtime 解决方法二 timedatectl set-local-rtc 1 解决方法三 修改/etc/adjtime文件中的UTC,为LOC ...