如何系统的学习Spring,以我15年J2EE教学和开发经验来说,首先要清楚Spring的概念和特性,以及在JavaEE框架中起到的作用。在此基础上再开展学习。(欢迎转发)
(1) Spring概念
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架
目的:解决企业应用开发的复杂性
功能:使用基本的JavaBean代替EJB,确保开发的简单性、可测试性和松耦合性;同时提供更多的企业应用功能
范围: Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益
(2)Spring特性
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。不管是SSH,还是SSM,都是由Spring通过IOC和AOP来对对象和对象组装关系进行统一管理。所以学好Spring,就是要学好IOC和AOP。看代码,看Spring源码,都是以这两者为核心。
轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类和接口。
控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。
面向切面——Spring提供了面向切面编程(AOP)的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如权限、日志和事务管理等)进行内聚性的开发。应用对象只实现它们应该完成的业务功能,不考虑其它的系统级关注点,例如日志或事务支持。
容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,可以配置每个bean如何被创建(bean可以创建一个单独的实例或者每次需要时都生成一个新的实例),以及它们是如何相互关联的。
框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。
(3)Spring带来了复杂的J2EE框架开发的春天。
Spring具有如下优点:
低侵入式设计,代码的污染度低;
独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere;
Spring的IoC容器降低了业务对象的耦合性;
Spring的AOP支持允许将一些通用的功能(权限、事务、日志等)等集中处理,提升了复用性,同时让开发者集中精力于业务功能的处理实现;
Spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问;
Spring是高度开放的,开发者可以自由选择Spring框架的部分或全部。
(4)目前最流行的Java EE开发框架是SSM,这时就需要以Spring为核心配置与管理工具,掌握spring和spring-mvc进行整合,Spring和mybatis进行整合与配置的方法。才能从容进行基于SSM的Java EE项目的开发。
(5)SpringBoot
目前很火的SpringBoot也是以Spring为基础,它是主要面向web服务,也就是微服务开发的。这个又是另外一个话题了。先学好Spring没错的。
刘嵩
2020.5.19