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

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教程spring教程spring教程spring教程

    很好的一个spring教程很好的一个spring教程很好的一个spring教程很好的一个spring教程很好的一个spring教程很好的一个spring教程很好的一个spring教程很好的一个spring教程

    好的spring东西

    好的spring

    SpringBoot+SpringCloud面试题.doc

    spring boot使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置,Spring Cloud很大的一部分是基于Spring boot来实现。Spring boot可以离开Spring Cloud独立使用开发项目,但是Spring Cloud...

    Spring和SpringCloud视频

    SpringBoot和SpringCloud视频,非常好的一个视频,里面有源码和课件

    spring in action & 精通spring

    spring in action & 精通spring

    spring v3.2源码

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

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

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

    基于spring boot的spring cloud 开源框架

    最重要的是, 跟spring boot框架一起使用的话,会让你开发微服务架构的云服务非常好的方便。 SpringBoot旨在简化创建产品级的 Spring 应用和服务,简化了配置文件,使用嵌入式web服务器,含有诸多开箱即用微服务...

    spring jar 包详解

    9) spring -hibernate.jar需spring-core.jar,spring-beans.jar,spring-aop.jar,spring- dao.jar,spring-jdbc.jar,spring-orm.jar,spring-web.jar,spring-webmvc.jar 10) spring-orm.jar需spring-core.jar,...

    学习spring的好东西

    学习spring的好东西

    springcloud视频学习

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

    spring配置文件:整理总结Spring中XML配

     在这篇文章里对于SpringXML配置我将向你展示12种比较好实战其中些实战不仅是好实战更是必要实战除 此以外还有其他原因例如领域模型设计都能影响XML配置但是这篇文章重点研究XML配置易读性和易管理性

    学习spring的很好的参考资料——Spring Gossip

    此为很有人气的Gossip的学习笔记,里面深入浅出的讲解了关于spring框架的知识与学习心得,是理解spring的不可多得的好资料。 此资料为html形式,每个知识点单独列为一张html页面,阅读很方便,不需要pdf格式下的阅读...

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

    编译好的Spring的eclipse工程!Spring源码,eclipse安装groovy直接导入就行了!

    Spring Framework API文档

    它是一个基于IOC和AOP的构架多层j2ee系统的框架,但它不强迫你必须在每一层中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;它实现了很优雅的MVC,对不同的数据访问技术提供了...

    springcloud视频

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

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

    一本很好的Spring好书和spring的API学习,非常适合深入学习spring的程序员,写的通俗易懂而且由浅入深!!!

    尚硅谷SpringCloud第2季2020版.mmap

    一篇很好的springCloud学习的思维导读,详细的介绍了,springCloud的搭建步骤以及各组件的说明讲解 涵盖 Eureka服务注册与发现 Zookeeper服务注册与发现 Consul服务注册与发现 Ribbon负载均衡服务调用 OpenFeign...

    spring cloud视频教程

    spring cloud视频教程 spring cloud视频教程 很好的 赶快来下载把

Global site tag (gtag.js) - Google Analytics