Spring框架是一种分层的Java SE/EE应用的全栈轻量级框架,实际上即用于支持我们简化企业级复杂项目开发的开源性开发框架。它的最重要核心是AOP(面向切面编程)和IOC(控制反转)。同时提供数据库操作和网络应用开发的支持模块,以及支持众多强大的第三方框架。Spring是一款功能非常的全面和强大的开放框架。下面是Spring开发框架的体系结构概念图:
AOP,面向切面编程,主要解决方法的公共代码块问题。比如在事务管理中,大量的对数据库的操作都需要对事务进行统一的,内容完全相同的管理操作。如下图所示:
就需要对大量的增删改查等系列操作同时进行增强,这里的图片因为原代码找不到了,临时用动态代理的内容展示一下。执行操作下面的代码表示原方法的执行,自己能理解就好。
故AOP,面向对象编程就是为了解决动态代理对方法增强时的编写代码复杂,结构不易理解的问题而提出的思想。能够使用注解和xml配置的方式,使得代码增强变得更加简单,结构更加清晰。同时支持AOP和TX(事务管理)的整合,使事务管理变得方便,便捷。具体代码参见工程E:\黎桥宇\SpringBoot\springWorkspace\spring\spring_day07_accountTxAop
接下来是IOC的理解,IOC翻译为中文为控制反转,其字面含义是将类的构造和控制交给Spring来处理,而不是由我们在编程过程中去考虑。这就有如下几个好处:1.我们可以更加专注于程序的逻辑实现;2.使得我们编写的程序耦合性大大降低。
IOC有xml文件配置和注解配置两种常用的方法。通常我们为了方便,采取xml和注解结合的方式来使用,自定义类采取注解的方式放入IOC容器,外来类采取xml的方式放入。外来类采取xml配置的方式的原因主要是有时(如数据库操作时需要为控制器注入数据源)需要为类对象配置一个成员对象时,注解配置只能支持AutoWired的注入方式,有时这样的方式可能会出错,而xml可以精确的为外来类注入成员对象类型,便于控制。
Spring的核心说起来并不复杂,就是控制反转以及面向切面编程的两种思想及其应用。通常都有xml和注解两种实现的方式。都应该要熟悉和掌握。因为掌握了它们,才能理解Spring框架的使用逻辑,才能做到在开发工作中的得心应手,以及大大便于后面SpringBoot的学习。
SpringBoot是Spring众多技术栈的整合,它是基于纯注解方式的,如果对Spring的使用原理不熟悉,不清楚Spring的框架逻辑,那么在进行SpringBoot配置的时候,有些操作可能会难以理解。