`
- 浏览:
21044 次
- 性别:
- 来自:
杭州
-
Spring框架倡导基于POJO(Plain Old Java Object,简单Java对象)的轻量级开发理念,其框架整体结构如下图(盗图一份):
在Spring框架中,其它所有模块(Module)都是建立在其核心容器(Core Container)之上的,这个核心容器实际上是一个Ioc容器的实现。当然在最底层的模块中,除了这个核心容器外,还提供了框架内部使用的各种工具类(当然在框架之外使用也是可以的)。
在核心容器与工具类之上是各种轻便但功能强大的模块。
首先是AOP模块,AOP作为Spring质量三角型中的一条边,其作用和功能型自然不言而喻。AOP能干些什么,以我的理解,就是根据你的描述,找到一些特定或者说有共同特点的方法,在方法执行前后甚至抛出异常时做一些事情。很简单是不是,但AOP有时可以减少很多相同代码的重复书写,比如DAO的事务管理,再比如各种的权限验证,这些代码哪怕是抽象成公共方法也需要在每个方法中调用,麻烦且容易忘记,AOP就很好的解决了这种问题。关于AOP的详细知识将在以后细细道来。
AOP模块之后就是O/R Mapping模块和DAO and JDBC模块,这两个模块其实是构建在AOP模块之上的,因为Spring的事务的访问和管理是基于AOP完成的。这两个模块提供了数据访问的功能,但实际开发和使用中,ORM这部分还是大多交由专门的框架负责,而Spring为各种当前流行的ORM框架,如Hibernate、iBATIS、Toplink、JPA等提供了形式统一的集成支持。
关于Application Context模块其实可以归到核心容器中,Spring的ApplicationContext是对BeanFactory的一个扩展,其提供了更强大的Ioc容器实现,包括了自动初始化、国际化支持、容器内事件发布等。
而Web Context模块是Application Context的一个扩展,主要是为Web应用提供类似的功能。
Spring MVC,是一套Spring自己的Web MVC框架,它让Spring对前台有了一个很好的支持,并且可以继承很多很好用的Web服务引擎,比如Velocity、CXF、XFire等。
最后,Spring还提供了对JEE服务的集成,包括JMX、JMS、JCA、EJB、JavaMail等等。
说到这里,我们可以看出,Spring真的非常强大,我们可以用Spring提供的功能独立的完成传统的三层架构,也可以集成各种自己喜欢的框架和服务。最主要的是Spring带来的轻量级和松散耦合的特定,是我们的应用可以很好的维护和扩展。Spring的各种标准让我们的应用更加规范化。而Spring的Ioc、AOP等功能也能够很好的简化我们的代码,节省开发时间。
总体来说就是一句话,如果你真的想学习一个框架或者一项技术,那就从一开始就认为这个技术非常牛掰,这样才能激发你足够的热情与求知欲。
最后再多嘴一句,Spring很庞大也不简单,我只是一个菜鸟,写出来的东西最主要的目的不是为了有多少人看,只是想自己总结一些留下一些东西而已。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Java毕业设计——网络考试系统的设计与实现,是一个典型的软件工程实践项目,主要涵盖了Java编程语言、Web开发技术、数据库管理和项目管理等多个领域的知识点。在这个项目中,学生将学习到如何运用Java技术构建一个...
尽管本项目可能并未直接使用SSM架构,但其核心思想——模块化、解耦合的设计原则依然贯穿其中。 此外,项目的前端界面可能采用了JSP(JavaServer Pages)技术,这是一种动态网页技术,允许开发者在HTML页面中嵌入...
通过阅读源代码,学习者可以了解到项目的整体架构和技术实现细节,这对于理解和掌握Java编程语言非常有帮助。 ##### 4.3 学习笔记 学习笔记是对项目学习过程中的重点难点进行总结归纳的资料,可以帮助学习者巩固所...
概要设计阶段,开发者将根据需求分析的结果设计系统整体架构,包括数据结构设计、模块划分和接口定义。在本系统中,可能分为学生模块、教师模块、管理员模块等,每个模块负责不同的功能,如学生模块主要处理学生个人...
- **系统设计**:绘制用例图、类图等UML图示文档,规划整体架构。 - **编码实现**:根据设计文档完成代码编写工作。 - **测试调试**:采用单元测试、集成测试等多种手段确保产品质量。 - **部署上线**:将成品部署至...
\n- 技术架构:选择适合的开发框架,如SSM(Spring、SpringMVC、MyBatis)或Vue.js,以构建稳定、高性能的系统。\n\n1.4 系统实现的挑战与对策\n\n在实现过程中,可能遇到的技术挑战包括性能优化、并发处理、数据...
《大学生体质测试管理系统开发文档》是一份详尽的软件开发资料,主要针对的是教育领域中的一个具体应用——大学生体质测试的信息化管理。该系统旨在提高大学体育教学的效率,科学地记录、分析和评估学生的体质状况,...
- **概要设计**:根据需求分析的结果,设计系统的整体架构。 - **详细设计**:细化每个模块的设计细节,包括数据结构、算法等。 - **代码编写**:按照设计文档进行编码。 - **系统测试**:完成单元测试、集成...
### JAVA真实包装项目经验——二手车项目面试知识点...通过以上内容的整理和总结,可以清晰地了解到该项目的开发流程、技术选型、个人职责以及项目架构等方面的知识点,有助于面试者更好地准备相关的面试题目和场景。
在整个blog进行开发之前,要确定出整个项目的整体架构,包括系统的选型、运行环境的确定及系统结构设计。下面对这进行详细介绍。 在进行软件系统开发的最初环节,一般都需要进行系统的选型,即根据系统功能的实际...