`

使用Spring的十大理由

阅读更多
1.面向接口编程,不重复发明轮子
接口定义的是规范,描述的是功能,在软件分层开发模式中尤为重要。一个接口,根据不同的个性化需求可以产生多个不同的实现,将接口与实现进行分离,大大降低了组件之间的耦合度,提高了组件的可测试性与相对独立性。

2.基于工厂模式的IoC容器
将Java EE应用中的对象全部交由Spring的Bean工厂进行生成、装配与生命周期的管理,这所Bean工厂肩负JavaBean的实例化、依赖关系的装配及高效的生命周期管理,为Java EE程序员分担了Bean管理的艰巨任务,让Java EE程序员享受到前所未有的"衣来伸手,饭来张口"的待遇。

3.面向切面编程AOP的完美实现
将业务逻辑中到处重复出现的一些诸如日志输出、事务控制及权限控制等代码全面抽取出来,集中放置到某个地方保存起来。使得Java EE程序员只要关注真正的业务逻辑处理即可,大大提高开发效率,最后在具体运行时,再由Spring的AOP模块自动完成重组,使得主业务逻辑代码与共有功能代码完美复合,最终实现我们预期的功能目标。

4.提供了大量实用的Java EE企业级服务支持
Spring作为一个轻量级的Java EE技术解决方案,如何更好地规范与简化各种Java EE企业级服务的应用是至关重要的。令我们欣慰的是,Spring出色地整合了目前常用的Java EE企业级服务,例如,事务管理、持久化服务、JMS消息服务、RMI远程调用、电子邮件、WebService、任务调度与EJB支持等。

5.兼容Java应用与Java Web应用
只要有Java身影的地方,就可以有Spring的用武之地。因此,不管是开发Java应用还是Java Web应用,均可受益于Spring。

6.模块化的架构,满足Java EE程序员的多样化需求
Spring开发团队当时在设计Spring时,就充分考虑到了Java EE程序员的多样化需求,最终以功能模块堆砌的架构展现出来,便于Java EE程序员选择应用,提高了Spring框架的应用灵活性。例如,在基于PDA等移动终端的Java应用开发时,可仅选用Spring的IoC模块;然而,在基于PC的电子商务应用开发中,则可同时选用Spring的IoC与AOP模块,甚至Spring自带的MVC框架,仁者见仁,智者见智。

7.轻重级
所谓轻量,并非论斤两、量体积。是指其运行过程中消耗资源少、开发过程轻便快捷,一切应用基于普通的JavaBean来实现,不需要专用的容器支持,面向接口编程,耦合度低,便于测试。

8.全面支持Annotation注解技术,大大简化配置工作
自JDK1.5推出Annotation技术以来,所有框架都争先恐后地加入到Annotation热潮中来,向着"零配置"的巅峰冲刺。

9.使用Spring自带的辅助工具类简化Java EE应用的开发,提高开发效率
例如,使用Spring提供的CharacterEncodingFilter过滤器可解决Java Web应用中的中文编码问题;使用WebApplicationContextUtils类的 getRequiredWebApplicationContext方法使得在JSP与Servlet中取得IoC容器的引用;使用 HibernateTemplate可快速方便地调用Hibernate Session完成数据库的操作;使用JdbcTemplate简化JDBC的数据库操作等。

10.与Struts、Hibernate等名流框架无缝集成
尽管Spring致力于提供"一站式"服务,在MVC应用领域,大家还是会被Struts 的出色表现所折服,谈到ORM,总是忘不了Hibernate娴熟的身影。Spring宽广的胸怀,为Struts与Hibernate敞开大门,提供了极为便利的集成方式,让SSH(Spring+Struts+Hibernate)这个崭新的组合框架从此映入Java EE程序员的眼帘,成为Java EE应用开发史上的新神话。
分享到:
评论

相关推荐

    阿里选择Spring的十大理由

    阿里选择Spring的十大理由

    10大理由!入行IT为啥建议你首选JAVA

    以下详细阐述了选择Java的10个关键理由: 首先,Java的跨平台兼容性是其核心优势之一。通过Java虚拟机(JVM),Java实现了“Write Once, Run Anywhere”(WORA)的理念,允许开发者编写一次代码就能在不同的操作...

    spring-spotify-explorer

    2. **Spring Boot应用**:由于Spring Spotfiy Explorer的名称,我们有理由相信它是基于Spring Boot构建的。Spring Boot简化了Spring应用程序的初始化和配置,提供了一种快速启动和运行的方式。 3. **RESTful服务**...

    基于协同过滤算法的在线教育平台源码(前后端分离)+项目使用说明.zip

    我所设计并实行的网络课程网站,在技术上使用了目前最为流行的一些框架和技术,后端包括Springboot、SpringMVC、SpringCloud、MybatisPlus、Nacos;前端包括Vue、JavaScript、Node.js、Nginx;推荐算法使用了基于...

    基于Springboot的集团门户网站(有报告) Javaee项目,springboot项目

    10. 部署项目到服务器,例如使用Tomcat或内置的Web服务器。 **5. 项目报告内容** 项目报告可能包含了以下部分: - 项目背景与目标 - 技术选型与理由 - 系统架构设计 - 功能模块实现细节 - 遇到的问题与解决方案 - ...

    低清版 大型门户网站是这样炼成的.pdf

    6.1.1 爱上spring 2.5的十大理由 350 6.1.2 一睹spring 2.5芳容 351 6.1.3 spring 2.5拿手戏——控制反转与依赖注入 353 6.1.4 何为“面向切面编程aop” 356 6.1.5 spring 2.5圣经——面向接口编程 358 6.1.6 ...

    SSH框架面试题.pdf

    数据源通常通过Spring配置文件来定义,可以使用`<bean>`标签结合`org.springframework.jdbc.datasource.DriverManagerDataSource`或`org.apache.commons.dbcp.BasicDataSource`等数据源实现。 34. **如何在SSH框架...

    Java SSM 汉服服装租赁系统【优质毕业设计分享】

    10. **文档编写**: 一份详尽的项目文档是必不可少的,包括需求分析、系统设计、接口文档、使用说明等,帮助其他开发者理解和维护系统。 总之,这个Java SSM汉服服装租赁系统展示了如何利用现代Java Web技术栈构建...

    springboot371高校实习管理系统--论文pf.zip

    3. **数据库管理**:可能使用MySQL、Oracle等关系型数据库,结合Spring Data JPA或MyBatis进行数据操作。 4. **权限控制**:Spring Security可以用于实现用户登录认证和授权,保护系统资源。 5. **前后端分离**:...

    SpringMVC.zip

    10. **异常处理**:Spring MVC提供了一套强大的异常处理机制,允许开发者通过@ControllerAdvice和@ExceptionHandler注解进行全局异常处理。 学习Spring MVC时,除了理论知识外,实践是非常重要的。通常会创建一个...

    java双月湾亲子高端酒店客房预订网站ssm论文和答辩ppt.zip

    10. **答辩技巧**:PPT制作时需清晰展示项目结构,突出重点,如技术选型理由、系统亮点、问题解决策略等。在答辩中,应准备回答评委对项目设计、实施、性能优化等方面的提问。 综上所述,这个项目涵盖了Java Web...

    毕设-在线考试系统.zip

    10. **文档与截图**:项目中的截图和文档可能包括系统流程图、类图、数据库设计图、使用说明等,帮助用户理解系统的工作原理和操作步骤。 总的来说,这个在线考试系统是一个综合性的Java Web项目,涉及到前端交互、...

    java程序员面试大纲错过了金三银四你还要错过2018吗.docx

    10. **Spring设计模式**:使用了大量的设计模式,如工厂模式、代理模式、观察者模式等。 11. **Spring MVC的工作原理**:接收HTTP请求,通过控制器处理请求,返回视图和模型数据,最终渲染视图响应客户端。 12. **...

    阿里巴巴Java开发手册(嵩山版).pdf

    - 使用Spring Framework中的`BeanUtils.copyProperties()`方法,它不仅支持多种类型转换,而且在性能方面也优于Apache Beanutils。 - 考虑使用Cglib提供的`BeanCopier`工具,该工具通过生成特定的类来实现快速属性...

    基于ssm+vue的汽车售票网站.zip

    这是一个基于SSM(Spring、SpringMVC、MyBatis)后端框架与Vue.js前端框架构建的汽车售票网站的毕业设计项目。这个项目旨在展示如何将传统的Java Web开发技术与现代前端开发技术相结合,实现一个功能完备、用户体验...

    面经-京东一面1

    - Python 3.0是Python编程语言的一个重大更新,面试官询问不使用Python 3的原因,可能是想了解面试者对版本差异的了解以及实际项目中的选择理由。 5. **Java自学**: - 自学Java显示了面试者自我学习的能力,这是...

    基于ssm+vue的员工工资管理系统毕业设计(源码+开发说明+演示视频).zip

    8. **开发说明**:ssm开发说明.docx可能包含项目的设计思路、技术选型理由、主要功能模块的实现方法以及可能出现的问题解决方案,是理解和复现项目的重要参考资料。 9. **演示录像**:ssm员工工资管理系统演示录像...

    PEP五年级下册期中复习PPT教案.pptx

    13. 原因提问:使用`Why`来询问做某事的理由,这里是晨练的原因。 14. 形容词辨析:`I don't like winter. It's too cold.`使用形容词`cold`来形容冬天的寒冷。 15. 不定式短语:`like to do sth.`表示喜欢做某事...

    基于ssm+vue疫情期间高校师生外出请假管理系统.zip

    10. **报表与数据分析**:为了便于学校管理层了解请假情况,系统可能提供了数据报表和分析功能,如请假人数统计、请假原因分布等,帮助决策者掌握疫情下的校园动态。 以上是基于SSM+Vue疫情请假管理系统可能涉及的...

    基于springboot实现的微信小程序的校园保修系统

    10. **论文内容**:论文可能涵盖了系统的设计原则、技术选型理由、实现步骤、性能测试结果以及对未来发展的展望。 通过以上知识点的学习和实践,开发者可以深入了解SpringBoot与微信小程序的结合,为构建类似校园...

Global site tag (gtag.js) - Google Analytics