
前言
讲到Spring,不得不提到他的缔造者Rod Johnson, 毕业于悉尼大学,凭借着对音乐的爱好,取得了音乐专业的博士,后来主攻计算机方面了.大家都说是被计算机耽误的一位音乐家,但是在Rod眼中,编程也是一门艺术.O(∩_∩)O哈哈,看到这是不是很激动,各位艺术家们~~~~~~好了,入正题,聊一下Spring框架.
Spring为何而生?
spring的出现意味着为开发工作带来了春天。它是一个开源的轻量级的容器框架,不仅服务端程序的开发受益,日常javaEE应用的开发,也能从中受益。Spring被缔造最主要的目的,就是去解决开发复杂、代码大量重复冗余的问题,简化我们的开发工作,使开发工作更加顺心,上手速度快,用起来效率也很高,相比以前用EJB开发javaEE应用,好的不是简单两个档次。EJB开发学起来难度是真的大,当然学会的自豪感也是很高的,但是完成开发的效率确实不理想的。
Spring的主要优点?
1.面向对象、面向接口编程的思想,并将复杂度降到了最低。
2.方便测试,在测试环节,spring框架会帮助你,使测试很方便。
3.应用程序代码并不依赖于Spring APIs。
4.和现有解决方案融合,寻求最佳解决方案,而不是竞争,这点很优秀。
5…优点当然好很多,毕竟作为目前主流框架。
Spring的主要特点?
IOC 控制反转和 AOP 切面编程。
IOC 控制反转: 我的浅显理解就是我们以往需要实例化一个类时,都是自己主动new一个,缺点是会造成资源的浪费,而且会产生骨牌效应,从而造成大量的代码修改,开发很累。而Spring框架中的控制反转,将创建对象的权利交给了IOC容器,当然前提是在容器配置文件中定义了要new的类,但你需要实例对象时,直接调用容器的拿取方法即可。(个人浅显见解,不足之处多多指教学习)
AOP 切面编程: 切面编程就是在对原来模块代码进行功能扩展时,不是去修改原有代码,而是采用切面编程的思想,采用“切入面”、“切入点”进行程序切入,就像手机外置电池一样,手机本身不做修改,而是通过接口连接一块新的电池,进行电池容量拓展。而外置电池就是“切入面”,接口就是“切入点”。这个例子还可吧。。。另外一个就是,比如咱们网购界面搭建时,在用户未登录情况下想要去访问订单、购物车等界面时,都会让其跳转到登录界面,成功之后然后再进行后续操作,其实我们可以把登录界面单独封装成一个Bean类,作为一个“切入面”,然后在需要跳转处设定“切入点”,当程序走到这里时,便会跳转,执行完毕后,在回到此处,或者继续执行规定的后续操作。
为何要使用?
充当工厂的角色,实现项目模块之间的解耦。举个简单的例子:
现在有两个类,Student类和Person类,Student类 是Person类的属性,现在Person要使用Student,我们以前的写法都是我们主动在Person类中new一个对象,那么任何一个类做修改的时候,另一个也要进行修改,此时两种类属于代码耦合。
为了达到缓解类之间的耦合性,可以使用Spring去实例化Student类,此时两类之间耦合度得到了降低。模块之间也一样,通过中间的Spring层,降低各个模块之间的耦合性,如图所示:
Spring七大模块

Spring七大模块
核心容器(Spring Core) 核心容器提供Spring框架的基本功能。Spring以bean的方式组织和管理Java应用中的各个组件及其关系。Spring使用BeanFactory来产生和管理Bean,它是工厂模式的实现。BeanFactory使用控制反转(IoC)模式将应用的配置和依赖性规范与实际的应用程序代码分开。
应用上下文(Spring Context) Spring上下文是一个配置文件,向Spring框架提供上下文信息。Spring上下文包括企业服务,如JNDI、EJB、电子邮件、国际化、校验和调度功能。
Spring面向切面编程(Spring AOP) 通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring框架中。所以,可以很容易地使 Spring框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中 。
JDBC和DAO模块(Spring DAO) JDBC、DAO的抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理,和不同数据库供应商所抛出的错误信息。异常层次结构简化了错误处理,并且极大的降低了需要编写的代码数量,比如打开和关闭链接。
对象实体映射(Spring ORM) Spring框架插入了若干个ORM框架,从而提供了ORM对象的关系工具,其中包括了Hibernate、JDO和 IBatis SQL Map等,所有这些都遵从Spring的通用事物和DAO异常层次结构。
Web模块(Spring Web) Web上下文模块建立在应用程序上下文模块之上,为基于web的应用程序提供了上下文。所以Spring框架支持与Struts集成,web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。
MVC模块(Spring Web MVC) MVC框架是一个全功能的构建Web应用程序的MVC实现。通过策略接口,MVC框架变成为高度可配置的。MVC容纳了大量视图技术,其中包括JSP、POI等,模型来有JavaBean来构成,存放于m当中,而视图是一个街口,负责实现模型,控制器表示逻辑代码,由c的事情。Spring框架的功能可以用在任何J2EE服务器当中,大多数功能也适用于不受管理的环境。Spring的核心要点就是支持不绑定到特定J2EE服务的可重用业务和数据的访问的对象,毫无疑问这样的对象可以在不同的J2EE环境,独立应用程序和测试环境之间重用。
注:个人学习见解,不足之处还望少侠谅解,如有需要改正之处,请指教,谢谢。
----------------如有帮助还望点个小心心,给与我前进的动力,Thanks--------------
Spring框架由Rod Johnson创建,旨在简化Java EE应用开发,减少代码冗余,提高开发效率。Spring通过控制反转(IOC)和面向切面编程(AOP)等特性,实现了模块间的解耦,便于测试和维护。Spring框架包含核心容器、应用上下文、面向切面编程、JDBC和DAO模块、对象实体映射、Web模块及MVC模块,适用于各种J2EE服务器。

被折叠的 条评论
为什么被折叠?



