Spring是一个开源框架,它由Rod Johnson建立。它是为了处置惩罚企业运用开辟的庞杂性而建立的。Spring运用基本的JavaBean来完成以
前只可以由EJB完成的事变。然则,Spring的用处不仅限于效劳器端的开辟。从简朴性、可测试性和松耦合的角度而言,任何Java运用都 可以从Spring中受益。
Spring是一个轻量级的掌握反转(IoC)和面向切面(AOP)的容器框架。
轻量——从大小与开支两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只要1MB多的JAR文件里宣布。而且Spring所 需的处置惩罚开支也是眇乎小哉的。别的,Spring黑白侵入式的:典范地,Spring运用中的对象不依靠于Spring的特定类。
掌握反转——Spring经由过程一种称作掌握反转(IoC)的手艺增进了松耦合。当运用了IoC,一个对象依靠的别的对象会经由过程被动的体式格局传 递进来,而不是这个对象本身建立或许查找依靠对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依靠,而是容器在对象初始化时不等对象要求就主动将依靠通报给它。
面向切面——Spring供应了面向切面编程的雄厚支撑,许可经由过程星散运用的营业逻辑与体系级效劳(比方审计(auditing)和事(transaction)治理)举行内聚性的开辟。运用对象只完成它们应当做的——完成营业逻辑——仅此而已。它们并不担任(以至是认识)别的的体系级关注点,比方日记或事宜支撑。
容器——Spring包含并治理运用对象的设置和生命周期,在这个意义上它是一种容器,你可以设置你的每一个bean怎样被建立——基于一个可设置原型(prototype),你的bean可以建立一个零丁的实例或许每次须要时都生成一个新的实例——以及它们是怎样互相干联的。然则,Spring不该当被混同于传统的重量级的EJB容器,它们常常是巨大与笨重的,难以运用。
框架——Spring可以将简朴的组件设置、组合成为庞杂的运用。在Spring中,运用对象被声明式地组合,典范地是在一个XML文件里。
Spring也供应了很多基本功用(事宜治理、耐久化框架集成等等),将运用逻辑的开辟留给了你。
统统Spring的这些特性使你可以编写更清洁、更可治理、而且更易于测试的代码。它们也为Spring中的种种模块供应了基本支撑。
Spring框架由七个定义明确的模块构成
假如作为一个团体,这些模块为你供应了开辟企业运用所需的统统。但你不势必运用完整基于Spring框架。你可以自由地遴选合适你的应 用的模块而疏忽其他的模块。
就像你所看到的,统统的Spring模块都是在中心容器之上构建的。容器定义了Bean是怎样建立、设置和治理的——更多的Spring细节。
当你设置你的运用时,你会潜在地运用这些类。然则作为一位开辟者,你最可以对影响容器所供应的效劳的别的模块感兴趣。这些模块将 会为你供应用于构建运用效劳的框架,比方AOP和耐久性。
中心容器
这是Spring框架最基本的部份,它供应了依靠注入(DependencyInjection)特性来完成容器对Bean的治理。这里最基本的观点是BeanFactory,它是任何Spring运用的中心。BeanFactory是工场形式的一个完成,它运用IoC将运用设置和依靠申明从现实的运用代码中星散出来。
运用上下文(Context)模块
中心模块的BeanFactory使Spring成为一个容器,而上下文模块使它成为一个框架。这个模块扩大了BeanFactory的观点,增添了对国际 化(I18N)音讯、事宜流传以及考证的支撑。
别的,这个模块供应了很多企业效劳,比方电子邮件、JNDI接见、EJB集成、长途以及时序调理(scheduling)效劳。也包含了对模版框 架比方Velocity和FreeMarker集成的支撑。
Spring的AOP模块
Spring在它的AOP模块中供应了对面向切面编程的雄厚支撑。这个模块是在Spring运用中完成切面编程的基本。为了确保Spring与别的 AOP框架的互用性,Spring的AOP支撑基于AOP同盟定义的API。AOP同盟是一个开源项目,它的目的是经由过程定义一组配合的接口和组件来增进AOP的运用以及差别的AOP完成之间的互用性。经由过程接见他们的站点,你可以找到关于AOP同盟的更多内容。
Spring的AOP模块也将元数据编程引入了Spring。运用Spring的元数据支撑,你可认为你的源代码增添解释,指导Spring在那边以及如 何运用切面函数。
JDBC笼统和DAO模块
运用JDBC常常致使大批的反复代码,获得衔接、建立语句、处置惩罚结果集,然后封闭衔接。Spring的JDBC和DAO模块抽取了这些反复代 码,因而你可以坚持你的数据库接见代码清洁简约,而且可以防备因封闭数据库资本失利而引发的题目。
这个模块还在几种数据库效劳器给出的毛病音讯之上建立了一个有意义的非常层。使你不必再试图破译神奇的私有的SQL毛病音讯!
别的,这个模块还运用了Spring的AOP模块为Spring运用中的对象供应了事宜治理效劳。
对象/关联映照集成模块
对那些更喜好运用对象/关联映照东西而不是直接运用JDBC的人,Spring供应了ORM模块。Spring并不试图完成它本身的ORM处置惩罚方 案,而是为几种盛行的ORM框架供应了集成计划,包含Hibernate、JDO和iBATIS SQL映照。Spring的事宜治理支撑这些ORM框架中的每一个也包含JDBC。
Spring的Web模块
Web上下文模块建立于运用上下文模块之上,供应了一个合适于Web运用的上下文。别的,这个模块还供应了一些面向效劳支撑。例
如:完成文件上传的multipart要求,它也供应了Spring和别的Web框架的集成,比方Struts、WebWork。
Spring的MVC框架
Spring为构建Web运用供应了一个功用周全的MVC框架。虽然Spring可以很轻易地与别的MVC框架集成,比方Struts,但Spring的MVC框架运用IoC对掌握逻辑和营业对象供应了完整的星散。
它也许可你声明性地将要求参数绑定到你的营业对象中,别的,Spring的MVC框架还可以应用Spring的任何别的效劳,比方国际化信息与考证。
Spring框架Web页面乱码题目
在做java Web 项目时,乱码题目经常都邑涌现,处置惩罚方法也不尽相同,有简朴也有庞杂的;假如加入了Spring框架以后就不一样了,可 以采纳Spring框架自带的过滤器CharacterEncodingFilter,如许可以大大减轻了我们的工作量,即简朴轻易又轻易明白。
以上就是Spring框架是什么的细致内容,更多请关注ki4网别的相干文章!