Spring概览Spring是最流行的企业级Java应用开发框架,全球数百万开发者使用Spring框架打造高性能,易测试,可重复使用的代码。SpringFramework是一个开源Java平台,最初由RodJohnson编写,并于2003年6月在Apache2.0许可下首次发布。Spring是一个轻量级框架,基本版本的大小只有2MB左右。Spring框架的核心特性可用于开发任何Java应用程序,但在JavaEE平台上构建Web应用程序需要扩展。SpringFramework的目标是使J2EE开发更容易,通过启用基于POJO的编程模型来促进良好的编程实践。三层架构A表现层web层MVC是表现层的一种设计模型B业务层服务层C持久层dao层Spring的优秀特性非侵入性:基于Spring开发的应用程序中的对象可以独立于Spring的API进行控制Inversion:IOC——InversionofControl,指的是将对象的创建权交给Spring来创建。在使用Spring之前,对象都是我们自己在代码new中创建的。在使用Spring之后。对象的创建交给了Spring框架。Dependencyinjection:DI——DependencyInjection是指依赖对象不需要手动调用setXX方法来设置,而是通过配置来赋值。Aspect-OrientedProgramming:AspectOrientedProgramming——AOP容器:Spring之所以是容器,是因为它包含并管理着应用对象的生命周期。组件化:Spring实现了将简单的组件配置组合成一个复杂的应用。可以使用XML和Java注释在Spring中组合这些对象。一站式服务:在IOC和AOP的基础上,可以集成各种企业应用的开源框架和优秀的第三方库(其实Spring本身也提供了表现层的SpringMVC和持久层的SpringJDBC).好处下面列出的是使用Spring框架的主要好处:Spring使开发人员能够使用POJO开发企业级应用程序。仅使用POJO的优点是您不需要EJB容器产品(例如应用程序服务器),但您可以选择使用强大的servlet容器(例如Tomcat或某些商业产品)。Spring以单元模式组织。即使包和类的数量非常多,你只需要关心你需要什么,其他的可以忽略。Spring不会让你白白做重复的工作,它真正利用了一些现有的技术,比如ORM框架、日志框架、JEE、Quartz和JDK定时器,以及其他视图技术。测试用Spring编写的应用程序很容易,因为与环境相关的代码已移至框架中。此外,通过使用JavaBean样式的POJO,使用依赖注入来注入测试数据变得更加容易。Spring的web框架是一个设计良好的webMVC框架,它为Structs或其他工程或不太流行的web框架提供了一个很好的替代方案。MVC模式导致应用程序的不同方面(输入逻辑、业务逻辑和UI逻辑)分离,同时在这些元素之间提供松耦合。模型封装应用程序数据,通常由POJO类组成。视图(View)负责渲染模型数据,一般来说它生成客户端浏览器可以解释的HTML输出。控制器负责处理用户请求并构建合适的模型,然后传递给视图进行渲染。Spring对一些JavaEE开发中非常难用的API(JDBC、JavaMail、远程调用等)进行了封装,大大降低了这些API的应用难度。例如,轻量级IOC容器往往是轻量级的,尤其是与EJB容器相比时。这有助于在内存和CPU资源有限的计算机上开发和部署应用程序。Spring提供了一个一致的事务管理接口,可以按比例缩小(例如使用单个数据库)到本地事务和全局事务(例如使用JTA)。依赖注入(DI)Spring最受认可的技术是控制反转的依赖注入(DI)模式。控制反转(IoC)是一个可以用许多不同方式表达的通用概念,依赖注入只是控制反转的一个具体示例。在编写复杂的Java应用程序时,应用程序类应尽可能独立于其他Java类,以增加这些类的可重用性的可能性,并且在进行单元测试时,可以独立于其他类进行测试。DependencyInjection(或有时称为Wiring)有助于将这些类粘合在一起,同时使它们保持分离。什么是依赖注入?让我们分别看看这两个术语。这里依赖部分转化为两个类之间的关联。比如A类依赖B类,现在我们来看第二部分,注入。这意味着B类将通过IoC注入到A类中。依赖注入可以通过将参数传递给构造函数或通过在构造后使用setter方法来实现。由于依赖注入是Spring框架的核心部分,我将在一个单独的章节中用很好的例子来解释这个概念。面向方面编程(AOP):Spring框架的一个关键组件是面向方面编程(AOP)框架。跨越程序中多个点的功能称为横切关注点,它们在概念上独立于应用程序的业务逻辑。在诸如日志记录、声明性事务、安全性和缓存等方面有各种常见的好例子。OOP中模块化的关键单元是类,而AOP中模块化的关键单元是方面。AOP帮助您将横切关注点与其影响的对象分开,而依赖注入帮助您将应用程序对象彼此分开。Spring框架的AOP模块提供了面向切面的编程实现,可以定义拦截器、入口点等方法,使实现功能的代码完全解耦。使用源代码级别的元数据,可以以类似于.Net属性的方式将行为信息合并到代码中。我将在单独的章节中详细讨论SpringAOP概念。以上就是Spring框架的内容。希望对大家有所帮助。初学者学习spring,推荐power节点的视频学习和spring教程。获取方式见评论区
