当前位置: 首页 > 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框架进行了再封装,屏蔽掉了复杂的配置和实现原理,具有简单易懂、易部署和易维护等特点。​

 


相关文章:

  • 如何快速在线扫描文档?Web TWAIN SDK 教你轻松解决
  • JSONredis
  • 与5G一起过中秋,天涯变咫尺
  • 进入docker容器命令行
  • java实战项目视频,2022年大厂Java高级面试题分享
  • Jira - create project
  • 档案管理学名词解释全集
  • 【比特熊故事汇2.0】|即使每天都是新的探险,他也会快乐Say Hi
  • 多线程之线程的执行顺序
  • <二叉树及模拟实现>——《Data Structure in C Train》
  • 谷粒商城高级篇-全文检索(ElasticSearch)
  • 【Linux】Windows安装VirtualBox虚拟机以及CentOS操作系统
  • [SpringBoot系列]消息中间件解决方案
  • micropython RP2040/esp32/c3自编译4MB/8MB/16MB固件分享
  • <数据结构> - 数据结构在算法比赛中的应用(下)
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • C学习-枚举(九)
  • django开发-定时任务的使用
  • es6
  • ES6 ...操作符
  • exports和module.exports
  • isset在php5.6-和php7.0+的一些差异
  • leetcode-27. Remove Element
  • MaxCompute访问TableStore(OTS) 数据
  • Object.assign方法不能实现深复制
  • PHP面试之三:MySQL数据库
  • Python打包系统简单入门
  • Redash本地开发环境搭建
  • SpingCloudBus整合RabbitMQ
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 给github项目添加CI badge
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 让你的分享飞起来——极光推出社会化分享组件
  • 事件委托的小应用
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 王永庆:技术创新改变教育未来
  • 学习Vue.js的五个小例子
  • 应用生命周期终极 DevOps 工具包
  • # 数论-逆元
  • #Spring-boot高级
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (四) 虚拟摄像头vivi体验
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)使用VMware vSphere标准交换机设置网络连接
  • .dwp和.webpart的区别