当前位置: 首页 > news >正文

今天来说说Java开发中常用的框架有哪些?

什么是框架

“框架(Framework)”一词最早出现在建筑领域,指的是在建造房屋前期构建的建筑骨架。在编程领域,框架就是应用程序的骨架,开发人员可以在这个骨架上加入自己的东西,搭建出符合自己需求的应用系统。

软件框架

软件框架是一种通用的、可复用的软件环境,它提供特定的功能,促进软件应用、产品和解决方案的开发工作。软件框架会包含支撑程序、编译器、代码、库、工具集以及API,它把所有这些部件汇集在一起,以支持项目或系统的开发。

软件框架可以形象地比喻成我们在盖楼房时,用梁+柱子+承重墙搭建起来的钢筋混凝土结构的建筑框架,它是整个建筑的骨架。而实现的软件功能,也就像在这个建筑框架中所要实现的不同类型、功能的房子,比如健身房、商场、酒店、饭店等。

早期Java EE开发弊端

在早期Java EE应用开发中,企业开发人员是利用JSP+Servlet技术进行软件应用和系统开发的,使用该技术会有以下两个弊端。

(1)软件应用和系统可维护性差如果全部采用JSP+Servlet技术进行软件的开发,因为分层不够清晰,业务逻辑的实现无法单独分离出来,从而造成系统后期维护困难。

(2)代码重用性低

企业希望以最快的速度,开发出最稳定、最实用的软件。如果系统不使用框架,每次开发系统都需要重新开发,需要投入大量的人力物力,并且重新开发的代码可能具有更多的漏洞,这就增加了系统出错的风险。

框架优势

相比于使用JSP+Servlet技术进行软件开发,使用框架有以下优势。

1.提高开发效率:如果采用成熟、稳健的框架,那么一些通用的基础工作,如事务处理、安全性、数据流控制等都可以交给框架处理,程序员只需要集中精力完成系统的业务逻辑设计,降低了开发难度。

2.提高代码规范性和可维护性:当多人协同进行开发时,代码的规范性和可维护性就变得非常重要。成熟的框架都有严格的代码规范,能保证团队整体的开发风格统一。

3.提高软件性能:使用框架进行软件开发,可以减少程序中的冗余代码。例如,使用Spring框架开发时,通过Spring的IOC特性,可以将对象之间的依赖关系交给Spring控制,方便解耦,简化开发;使用MyBatis框架开发时,MyBatis提供了XML标签,支持动态的SQL,开发人员无需在类中编写大量的SQL语句,只需要在配置文件中进行配置即可。

Spring框架

Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的,其主要优势之一就是分层架构。Spring提供了更完善的开发环境,可以为POJO(Plain Ordinary Java Object,普通Java对象)对象提供企业级的服务。

Spring MVC框架

Spring MVC是一个Web开发框架,可以将它理解为Servlet。在MVC模式中,Spring MVC作为控制器(Controller)用于实现模型与视图的数据交互,是结构最清晰的。

Spring MVC框架采用松耦合、可插拔的组件结构,具有高度可配置性,与其他的MVC框架相比,具有更强的扩展性和灵活性。

MyBatis框架

MyBatis是Apache的一个开源项目iBatis,2010年这个项目​ 由Apache Software Foundation迁移到了Google Code,并且改名为MyBatis,2013年11月MyBatis又被迁移到Github。

MyBatis是一个优秀的持久层框架,它可以在实体类和SQL语句之间建立映射关系,是一种半自动化的ORM(Object/Relation Mapping,即对象关系映射)实现。MyBatis ​封装性要低于Hibernate,但它性能优越、简单易学,在互联网应用的开发中被广泛使用。

Spring Boot框架

Spring Boot框架是Pivotal团队基于Spring开发的全新框架,其设计初衷是为了简化Spring的配置,使用户能够构建独立运行的程序,提高开发效率。

Spring Boot框架本身并不提供Spring框架的核心特性及扩展功能,它只是用于快速、敏捷地开发新一代基于Spring框架的应用,同时它还集成了大量的第三方类库(如Jackson、JDBC、Redis等),使用户只需少量配置就能完成相应功能。

spring cloud框架

Spring Cloud是一系列框架的有序集合,为开发人员构建微服务架构提供了完整的解决方案,它利用Spring Boot的开发便利性巧妙地简化了分布式系统的开发。例如,配置管理、服务发现、控制总线等操作,都可以使用Spring Boot做到一键启动和部署。可以说,Spring Cloud将Spring Boot框架进行了再封装,屏蔽掉了复杂的配置和实现原理,具有简单易懂、易部署和易维护等特点。

 

相关文章:

  • Three.js对模型进行多区域染色
  • 超全面试汇总——Hadoop(二)
  • Android辅助功能(Accessibility)简介
  • SSM网约车管理系统毕业设计-附源码051630
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • 第11章Linux实操篇-Linux磁盘分区、挂载
  • Kotlin协程:Flow的融合、Channel容量、溢出策略
  • android毕业设计选题基于Uniapp+SSM实现的互联网云数据环境下的供销APP购物商城电商
  • 超级详细的mysql安装和配置教程
  • 超级详细的Maven使用教程
  • 界面组件DevExpress WPF Data Grid哪些功能还能增强?一起来看
  • 爱上开源之golang入门至实战第四章函数(Func)(十)
  • SQL Dblink SQL
  • 超级无敌详细使用ubuntu搭建hadoop完全分布式集群
  • Flink学习22:窗口的划分
  • 【Leetcode】101. 对称二叉树
  • 【comparator, comparable】小总结
  • CSS中外联样式表代表的含义
  • gcc介绍及安装
  • SpringCloud集成分布式事务LCN (一)
  • Sublime Text 2/3 绑定Eclipse快捷键
  • ViewService——一种保证客户端与服务端同步的方法
  • 测试开发系类之接口自动化测试
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 对JS继承的一点思考
  • 翻译:Hystrix - How To Use
  • 浮现式设计
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 规范化安全开发 KOA 手脚架
  • 计算机常识 - 收藏集 - 掘金
  • 技术:超级实用的电脑小技巧
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 力扣(LeetCode)21
  • 如何设计一个比特币钱包服务
  • 一文看透浏览器架构
  • 再次简单明了总结flex布局,一看就懂...
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • Java性能优化之JVM GC(垃圾回收机制)
  • 阿里云API、SDK和CLI应用实践方案
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #{}和${}的区别是什么 -- java面试
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #前后端分离# 头条发布系统
  • (+4)2.2UML建模图
  • (C语言)二分查找 超详细
  • (day 12)JavaScript学习笔记(数组3)
  • (javascript)再说document.body.scrollTop的使用问题
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (rabbitmq的高级特性)消息可靠性
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...