`
javawebsoa
  • 浏览: 425439 次
社区版块
存档分类
最新评论

Spring究竟哪儿好

阅读更多

       视频看完有段时间了,一直在总结,看了别人的不少总结,感觉都写的很好,不过很多都是注重了知识点的总结,缺少宏观上的指导,比如:Spring里出名的IoC容器,只说了它的概念,然后给个代码的示例就算完成总结了。我觉得总结就应该像老师经常说的那样,先宏观上说说,然后再具体介绍知识点,甚至是具体的知识点可以简单的说说就行,因为那些个知识点在帮助文档里介绍的很详细了,用的时候查一下就OK。

       下面就SSH里的Spring谈谈它究竟哪儿好?为什么有人要在项目里使用它?它能给我们带来什么?其实也不完全是出自我个人的工程经验,大都是看别人的总结把我认为不错的地方加以修改总结到一起的,希望能够给大家带来帮助,也希望正在学习Spring的同志们能够受到一点启发,同时也是给自己留着以后回顾的时候可以看看。

Spring为何而生?

开发人员都知道Java EE框架下企业级开发采用EJB框架存在一些不足:

1、         EJB比较笨重,而且Entity EJB不能脱离容器

2、         企业级服务使用比较困难

3、         开发的复杂度也比较高

4、         它是侵入式方案设计,EJB需要使用特定的接口

为了优化解决这些个问题,Spring就应用而生了…

Spring有哪些作用,为什么要用它?

1、         简化了企业级开发

      a)     封装了大部分的企业级服务,提供了更好的访问这些个服务的方式

      b)     提供了IoC、AOP等功能的容器,实现松耦合,更加方便编程和维护

2、         遵守Spring框架的应用程序,一般都是设计良好的针对接口编程,这样可以简化企业级程序的设计。

3、         Spring的基本结构(看图)


 

       a)      SpringCore:核心容器,提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory使用控制反转IoC模式将应用程序的配置和依赖性规范与实际的应用程序代码分开

       b)     SpringContext:ApplicationContext,扩展核心容器,提供事件处理、国际化等功能。它提供了一些企业级服务的功能,如提供了JNDI,EJB,RMI的支持。

       c)      SpringAOP:通过配置管理特性,Spring AOP 模块直接将面向切面的编程功能集成到了Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB组件,就可以将声明性事务管理集成到应用程序中,我们主要应用的就是它的声明式事务的能力

       d)     SpringDAO:JDBC 、DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。

       e)      Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JPA、TopLick、OJB、JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。

       f)       SpringWeb 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。

       g)      SpringMVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。

总结:Spring对企业级服务进行了进一步的封装,简化了企业级开发。同时采用它也就意味着进行了良好的分层设计,并保证了面向接口编程,加上它的IoC和AOP容器的优势,更加方便我们后期的维护工作,但是由于容器大量的使用反射机制装配对象,一定会影响性能,对于一些高并发的大型应用我们还是要慎用。

 

20
32
分享到:
评论
13 楼 tlde_ti 2012-07-27  
if(i!=我){} 写道
tlde_ti 写道
if(i!=我){} 写道
还有,只要在文章中出现“高并发”之类的,我必踩之!

现在在政府和大企业根本不存在“高并发”,32核心+64G内存只部署了两个网站,有本事你能把服务器的资源充分利用一下!

我理解有误?都32核心了你不多线程利用还是单线程使用?并发不正是把32核心的性能发挥出来么。

你理解的并发只是多台服务器?

“高并发”?多线程?他们有半毛钱关系?

LZ见过单线程运行的JAVA程序?反正我是没见过!


举个愚蠢的例子来说明并发的概念,你要计算1到200相加的和,你让一个人算1到100的和,另一个人算101到200的和。这两个人同时运算,这就是并发。

而java里一般情况来说实现并发都是使用线程。
12 楼 tlde_ti 2012-07-27  
if(i!=我){} 写道
tlde_ti 写道
if(i!=我){} 写道
还有,只要在文章中出现“高并发”之类的,我必踩之!

现在在政府和大企业根本不存在“高并发”,32核心+64G内存只部署了两个网站,有本事你能把服务器的资源充分利用一下!

我理解有误?都32核心了你不多线程利用还是单线程使用?并发不正是把32核心的性能发挥出来么。

你理解的并发只是多台服务器?

“高并发”?多线程?他们有半毛钱关系?

LZ见过单线程运行的JAVA程序?反正我是没见过!


建立你去看下基础知识,推荐书籍 java concurrency in practice.
感觉你连并发(concurrency)是什么意思都不清楚
11 楼 if(i!=我){} 2012-07-27  
tlde_ti 写道
if(i!=我){} 写道
还有,只要在文章中出现“高并发”之类的,我必踩之!

现在在政府和大企业根本不存在“高并发”,32核心+64G内存只部署了两个网站,有本事你能把服务器的资源充分利用一下!

我理解有误?都32核心了你不多线程利用还是单线程使用?并发不正是把32核心的性能发挥出来么。

你理解的并发只是多台服务器?

“高并发”?多线程?他们有半毛钱关系?

LZ见过单线程运行的JAVA程序?反正我是没见过!
10 楼 jinnianshilongnian 2012-07-26  
firstjava_5 写道
jinnianshilongnian 写道
fexehu 写道
啥视频?

不会是 私塾在线学习网 上的吧!


9 楼 firstjava_5 2012-07-26  
jinnianshilongnian 写道
fexehu 写道
啥视频?

不会是 私塾在线学习网 上的吧!

8 楼 firstjava_5 2012-07-26  
LZ,你忽略了一个显而易见的问题,DOS比windows7效率高不知多少倍,你去用DOS吧!
7 楼 tlde_ti 2012-07-26  
if(i!=我){} 写道
还有,只要在文章中出现“高并发”之类的,我必踩之!

现在在政府和大企业根本不存在“高并发”,32核心+64G内存只部署了两个网站,有本事你能把服务器的资源充分利用一下!

我理解有误?都32核心了你不多线程利用还是单线程使用?并发不正是把32核心的性能发挥出来么。

你理解的并发只是多台服务器?
6 楼 if(i!=我){} 2012-07-26  
还有,只要在文章中出现“高并发”之类的,我必踩之!

现在在政府和大企业根本不存在“高并发”,32核心+64G内存只部署了两个网站,有本事你能把服务器的资源充分利用一下!
5 楼 if(i!=我){} 2012-07-26  
LZ,你忽略了一个显而易见的问题,DOS比windows7效率高不知多少倍,你去用DOS吧!
4 楼 m_lixn 2012-07-26  
jyjava 写道
lz,你这个文章写得也不咋地

+1
3 楼 jyjava 2012-07-26  
lz,你这个文章写得也不咋地
2 楼 jinnianshilongnian 2012-07-26  
fexehu 写道
啥视频?

不会是 私塾在线学习网 上的吧!
1 楼 fexehu 2012-07-26  
啥视频?

相关推荐

    spring示例代码好又全.rar

    内容如下: spring.rar [spring_aop1] [spring_aop2] [spring_aop3] [spring_aop4] [spring_autowire_byName] [spring_autowire_byType] [spring_beginning] [spring_hibernate_1] [spring_hibernate_2] ...

    spring-cloud项目_springcloud_springcloud项目_springcloud_spring-clou

    9. **Spring Cloud Gateway**: Spring Cloud Gateway 是新一代的 API 网关,取代了 Zuul,提供更高效、更灵活的路由、过滤器等功能,同时具备更好的性能和扩展性。 10. ** Sleuth 和 Zipkin**: Sleuth 是一个分布式...

    spring in action & 精通spring

    通过阅读《Spring in Action》和《精通Spring》,开发者不仅可以掌握Spring框架的基础用法,还能深入理解其设计理念,从而在实际项目中更好地利用Spring提高开发效率和代码质量。这两本书覆盖了大量的实例和最佳实践...

    spring2.0升级到spring3.0.5的开发包

    8. **国际化支持**:Spring 3.0的MessageSource接口提供了更好的国际化支持,可以更方便地处理多语言环境。 9. **测试框架增强**:Spring 3.0的测试支持更加完善,包括对Mockito等第三方库的集成,使得单元测试和...

    超好的Spring 学习资料

    3. **面向切面编程(AOP)**:AOP允许开发者将横切关注点(如日志、事务管理)从业务逻辑中分离,提供更好的代码组织和复用。Spring通过代理模式实现了AOP。 4. **Spring MVC**:Spring MVC是Spring框架的一部分,...

    spring-framework-5.3.8

    5.3.8 版本的 Spring Framework 可能与 Spring Boot 的某个版本兼容,共同为开发者提供更好的开发体验。 7. **测试**:Spring 提供了丰富的测试支持,包括单元测试、集成测试和端到端测试。在 5.3.8 版本中,测试...

    编译好的Spring的eclipse工程!Spring源码

    这个压缩包包含的是编译好的Spring 4.3.0版本的源码,对于学习和理解Spring的工作原理极其有价值。 在Spring 4.3.0版本中,有几个重要的知识点值得深入探讨: 1. **IoC容器**:IoC是Spring的核心,它管理对象的...

    spring-5.3.9-dist.zip(spring-framework-5.3.9)

    在5.3.9版本中,DI机制得到了进一步的增强,支持更复杂的依赖配置和更好的类型安全。 `docs`文件夹包含Spring 5.3.9的官方文档,这是一份非常重要的资源,开发者可以通过它了解框架的所有细节。文档通常包括用户...

    spring 5 , Spring Boot 2.0,Spring cloud

    首先,Spring 5是Java开发者广泛使用的开源框架,它的主要改进包括对Java 8及更高版本的全面支持、反应式编程的支持(通过Spring Framework 5.0的WebFlux模块)、更好的类型安全的事件处理系统,以及对HTTP/2协议的...

    spring boot、spring cloud、spring boot Alibaba以及配套组件版本关系

    本文旨在帮助开发者理解Spring Boot、Spring Cloud、Spring Boot Alibaba以及其相关组件之间的版本关系,以便更好地选择适合自己项目的版本组合,避免因版本不匹配导致的问题。 #### 二、Spring Boot与Spring Cloud...

    springcloud视频学习,学习springcloud推荐的视频,讲的真的很好

    SpringCloud是目前非常流行的一站式微服务解决方案,它提供了众多工具和服务,帮助开发者构建、部署和管理分布式系统。在微服务架构中,SpringCloud扮演着核心的角色,它集成了许多开源项目,如Eureka(服务发现)、...

    学习spring的好东西

    Spring有多个核心模块,如Core Container、Data Access/Integration、Web等,理解这些模块的功能有助于更好地使用Spring。此外,表单的action属性设置,以及SSH项目重构的步骤也是开发中需要注意的点。 以上是对...

    Spring5.pdf

    关于Spring框架的实践应用,开发者可以在Spring的官方文档中找到详细的API文档、指南以及各种示例项目,以帮助开发人员更好地理解和使用Spring框架。官方的下载地址和GitHub地址也提供了从源代码到二进制构建的入口...

    springcloud视频学习

    《SpringCloud视频学习》 SpringCloud作为微服务架构的重要实现框架,深受广大开发者的喜爱。本资源包含了两部关于SpringCloud的视频教程,由尚硅谷出品,内容详实且易于理解,是学习SpringCloud的理想资料。 一、...

    spring v3.2源码

    个人觉得spring3.2的源代码比较好编译,没啥脾气,像我之前下载的spring的最新版本源代码,还有spring4.0的源代码,不论是使用jdk1.6还是1.7甚至是1.8编译都出问题,结果还是觉得spring3.2编译过程轻松一点,配合...

    一本很好的Spring好书和spring的API

    "一本很好的Spring好书和spring的API"这个资源包含两部分:Spring API的CHM文件和一本Spring入门书籍的PDF,两者都是深入学习Spring框架的重要资料。 首先,让我们来探讨Spring API的CHM文件。CHM(Compiled ...

    Spring 揭秘 全面 深入了解Spring

    《Spring 揭秘:全面深入了解Spring》是一本旨在帮助开发者深入理解并熟练掌握Spring框架的权威指南。...通过阅读这本书,你将能够深入理解Spring的内部机制,更好地利用Spring来构建高效、可扩展的企业级应用。

    spring 4.3.14(全)最新的spring4正式版

    这个版本在Spring 5.0发布之前提供了一个稳定可靠的平台,尤其对于那些尚未准备好升级到Java 8或Spring 5的项目来说,它是理想的选择。 Spring框架的核心特性包括依赖注入(Dependency Injection,DI),面向切面...

    spring mongodb很好的例子

    在IT领域,Spring框架是Java开发中的一...通过分析和学习`HelloSpringWithMongoDB-master`这个示例项目,开发者可以更好地理解如何在实际应用中结合Spring MVC和Spring Data MongoDB,实现与MongoDB数据库的高效交互。

    spring攻略 第2版

    《Spring攻略 第2版》是一本深度探讨Spring框架的书籍,旨在帮助读者全面理解并熟练掌握这个JavaEE领域的核心框架。...通过深入学习这本书,读者将能够更好地理解和运用Spring框架,构建更加高效、灵活的企业级应用。

Global site tag (gtag.js) - Google Analytics