Spring框架真的很难学?

作为一个程序员,不管你是刚入门的新手、还是刚入职场的菜鸟,想要学好Spring,首先就要明确什么是Spring,它能帮我们做什么,解决什么样的问题,在了解了这些之后呢,我们自然而然就知道怎么使用Spring了。
在这里插入图片描述

Spring的核心就是IOC容器,但是我们不能简单的说他就是一个容器。我们需要知道如何配置使用这个容器,Spring的其他技术,都是在这个容器的基础之上实现的。

其次,就是AOP,面向切面编程,概念、配置和实现原理等等,还有就是Spring的事务管理。Spring事务管理其实就是面向切面编程的实现。

IOC和AOP是Spring的核心思想基础,只有了解了它们,我们才能基于Spring,让我们的工作变得更加简单。个人认为,想要学好Spring,首先要搞懂以下几个问题:

Spring是什么?
你只需要知道,Spring是基于面向对象编程思想的Java开发框架

Spring能干什么?
Spring可以根据配置文件创建以及组装对象之间的依赖关系;

Spring面向切面编程可以帮我们解决日志记录、性能统计和安全控制等

Spring可以非常简单的帮我们解决和管理数据库事务问题

Spring还提供了与第三方框架的无缝集成,例如:hibernate、JPA等

Spring的JDBC使得我们访问数据库变得非常容易

Spring提供与Struts、JSF等框架的集成支持,而且Spring MVC也非常好用

Spring还可以与其他第三方框架整合

Spring在JavaEE的三层架构,每一层均提供了不同的解决技术。如下:

表现层(Web层):Spring MVC

业务逻辑层(Service层):Spring的IoC

数据访问层(DAO层):Spring的jdbcTemplate

Spring是什么样的架构?
Sping官网给出的Spring 架构图:
在这里插入图片描述

Spring架构图

Sping作为分层架构,可以总结为如上图所示的5大部分:

Core Container-核心容器是什么,各模块有什么关联?
Core Container(核心容器)包含Core、Beans、Context和Expression Language模块。

其中Beans和Core是Spring框架的基础部分,提供Ioc和依赖注入特性,核心容器的主要组件BeanFactory,它是工厂模式的实现。BeanFactory使用控制反转(IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。

Core模块:包含Spring框架的基本核心工具类,并为其他模块和组件提供工具类。可以说是Spring框架的心脏。

Beans模块:提供包含配置文件访问、创建和管理Bean以及依赖注入IoC与DI的最基本实现。

Context:构建于Core和Beans基础之上,spring的context上下文即IoC容器,ApplicationContext接口是Context模块的关键所在。

Expression Language:表达式语言,

Data Access/Intergration又是做什么用的?
包含JDBC、ORM、OXM、JMS和Transaction模块。

JDBC模块:包含了spring的JDBC数据访问进行封装的所有类,让我们访问数据库变得更加简单、方便。

ORM模块:对象-关系映射API,提供ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。

OXM模块:提供对Object/XML映射实现的抽象层。

JMS模块:提供java消息服务

Transaction 模块:支持编程和声明性的事物管理。

Web是什么?
Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。

AOP是什么?
Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,事务管理,变得不再复杂。

Aspect模块提供了对AspectJ的集成和支持

Instrumentation模块提供了class instrumentation支持和classloader实现。

切面(Aspect): 切面用于组织多个Advice,Advice放在切面中定义。

连接点(Joinpoint): 程序执行过程中明确的点,如方法的调用,或者异常的抛出。在Spring AOP中,连接点总是方法的调用。

增强处理(Advice): AOP框架在特定的切入点执行的增强处理。处理有"around"、"before"和"after"等类型

切入点(Pointcut): 可以插入增强处理的连接点。简而言之,当某个连接点满足指定要求时,该连接点将被添加增强处理,该连接点也就变成了切入点。

Test,程序员都知道
Test模块支持使用JUnit对Spring组件进行测试。

Spring需要学习那些知识?
Spring是一类技术的一个统称,Spring框架包含了很多的东西,想要学好Spring,并了解其精髓,那么我们必须要花时间来研究它,吃透它,学习Spring,我们需要了解学习一下知识:

Spring整体架构

容器的基本实现

标签以及自定义标签

Bean创建以及加载

容器的高级功能

数据库JDBC

事务

Spring MVC

Spring消息

Spring远程服务

结束语
在这篇文章里,我么共同了解了Spring的基础架构,各个模块的基本作用,提供什么样的服务,以及它在Spring框架中所处的一个位置等等。

如果你想学好Spring,或者想对Spring有更深的了解,请继续关注Spring系列文章,后续文章我将按照上面提到的顺序,和大家一起学习Spring知识。


版权声明:本文为suannai11原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>