Spring是一个主流的JavaWeb开发框架,该框架是一个轻量级的应用框架,具有很高的凝聚力和吸引力。Spring框架因其强大的功能以及卓越的性能而受到众多开发人员的喜爱。
Spring是分层的JavaSE/EEfull-stack轻量级开源框架,以IoC(InverseofControl,控制反转)和AOP(AspectOrientedProgramming,面向切面编程)为内核,使用基本的JavaBean完成以前只可能由EJB完成的工作,取代了EJB臃肿和低效的开发模式。
在实际开发中,通常服务器端采用三层体系架构,分别为表现层(web)、业务逻辑层(service)、持久层(dao)。
Spring对每一层都提供了技术支持,在表现层提供了与Struts2框架的整合,在业务逻辑层可以管理事务和记录日志等,在持久层可以整合Hibernate和JdbcTemplate等技术。
从设计上看,Spring框架给予了Java程序员更高的自由度,对业界的常见问题也提供了良好的解决方案,因此,在开源社区受到了广泛的欢迎,并且被大部分公司作为Java项目开发的首选框架。
Spring具有简单、可测试和松耦合等特点,不仅可以用于服务器端的开发,也可以应用于任何Java应用的开发中。Spring框架的主要优点具体如下:
1.方便解耦,便于开发,spring支持aop编程,Spring就是一个大工厂,可以将所有对象的创建和依赖关系维护都交给spring管理,Spring不会让你白费力气做重复工作,它真正的利用了一些现有的技术,像ORM框架、日志框架、JEE、Quartz和JDK计时器,其他视图技术。
2.Spring的web框架是一个设计良好的webMVC框架,它为比如Structs或者其他工程上的或者不怎么受欢迎的web框架提供了一个很好的供替代的选择。MVC模式导致应用程序的不同方面(输入逻辑,业务逻辑和UI逻辑)分离,同时提供这些元素之间的松散耦合。
(1)模型(Model)封装了应用程序数据,通常它们将由POJO类组成。
(2)视图(View)负责渲染模型数据,一般来说它生成客户端浏览器可以解释HTML输出。
(3)控制器(Controller)负责处理用户请求并构建适当的模型,并将其传递给视图进行渲染。
3.Spring可以使开发人员使用POJOs开发企业级的应用程序。只使用POJOs的好处是你不需要一个EJB容器产品,比如一个应用程序服务器,但是你可以选择使用一个健壮的servlet容器,比如Tomcat或者一些商业产品。
4.Spring在一个单元模式中是有组织的。即使包和类的数量非常大,你只要担心你需要的,而其它的就可以忽略了。
5.与EJB容器相比较,Ioc容器更加趋向于轻量级。轻量级的IOC容器往往是轻量级的,特别是当与EJB容器相比的时候。这有利于在内存和CPU资源有限的计算机上开发和部署应用程序。
6.降低javaEEAPI的使用难度,Spring对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低。
7.声明式事务的支持,通过配置就完成对事务的支持,不需要手动编程,Spring提供了一致的事务管理接口,可向下扩展到(使用一个单一的数据库,例如)本地事务并扩展到全局事务(例如,使用JTA)。
8.spring对junit4支持,可以通过注解方便的测试spring程序。测试一个用Spring编写的应用程序很容易,因为环境相关的代码被移动到这个框架中。此外,通过使用JavaBean-stylePOJOs,它在使用依赖注入注入测试数据时变得更容易。
9.其他:选择Spring框架的原因还远不止于此,Spring为Java企业级开发提供了一站式选择,你可以在需要的时候使用它的部分和全部,更重要的是,你甚至可以在感觉不到Spring存在的情况下,在你的项目中使用Spring提供的各种优秀的功能。