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的反射机制。