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

news/2024/5/16 6:12:01/文章来源:https://blog.csdn.net/Candyz7/article/details/126617456

什么是框架

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_3492.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

超全面试汇总——Hadoop(二)

超全面试汇总——Hadoop(二) 谈谈什么是Hadoop?MapReduce分布式计算shuffle流程shuffle阶段的数据压缩机制了解吗MapReduce实现基本SQL操作的原理 1. Join的实现原理2. Group By的实现原理3. Distinct的实现原理 一个文件有上亿url,内存很小…

Python编程快速上手 PDF高清版下载

《Python编程快速上手》PDF高清版免费下载地址内容简介 如今,人们面临的大多数任务都可以通过编写计算机软件来完成。Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。通过Python编程,我们能够解决现实生活中的很多任务。 本书是一本面向实践的Python…

91.(leaflet之家)leaflet态势标绘-进攻方向绘制

听老人家说:多看美女会长寿 leaflet之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <!DOCTYPE html> <html>

HXAPIGate系列——HXAPIGate快速入门

1. HXAPIGate网关简介 HXAPIGate&#xff08;中文名&#xff1a;浩心API网关&#xff09;&#xff0c;其核心能力在于对API微服务的零侵入&#xff0c;使用HXAPIGate代理微服务API接口时&#xff0c;微服务建设只需要进行纯粹的业务代码实现即可&#xff0c;不需要考虑任何权限…

广州地铁将在十三号线、二十一号线新增5个地铁口,位置在这里

作为天选打工人不得不感叹一句&#xff1a; 广州地铁yyds &#xff01;而最近广州地铁有了许多新消息朋友们可不能不知道呀。 近日&#xff0c;广州公共资源交易中心发布了《广州市轨道交通十三号线首期、二十一号线部分车站出入口及零星工程勘察设计服务项目公告简要》&#x…

Dilated Convolution(空洞卷积、膨胀卷积)详解

&#x1f34a;作者简介&#xff1a;秃头小苏&#xff0c;致力于用最通俗的语言描述问题 &#x1f34a;往期回顾&#xff1a;目标检测系列——开山之作RCNN原理详解    目标检测系列——Fast R-CNN原理详解   目标检测系列——Faster R-CNN原理详解 &#x1f34a;近期目标&a…

linux常用的通配符与正则表达式

我们在很多地方都会用到通配符和正则表达式来实现我们的日常操作,提高我们的工作效率。但是很多新伙伴,往往容易将他们弄混。 首先我们需要知道通配符和正则表达式的使用场景: 通配符也叫文件名替换,它主要是作用于匹配文件名,常用命令是ls、find、cp、mv; 正则表达式主要…

视觉SLAM十四讲学习笔记--第七讲视觉里程计学习笔记总结(1)

专栏系列文章如下&#xff1a; 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-开发环境搭建_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第三讲-旋转矩阵和Ei…

Springboot人体健康检测微信小程序毕业设计-附源码012142

摘 要 本文设计了一种基于微信小程序的人体健康检测小程序&#xff0c;主要为人们提供了方便的各项健康检测服务&#xff0c;包括健康数据编辑、健康科普、健康讨论、注册登录功能等&#xff0c;用户能够方便快捷地查看健康科普知识、进行健康数据信息的上传等。人体健康检测微…

(附源码)ssm医药销售管理系统 毕业设计 042322

SSM医药销售管理系统 摘 要 随着社会的发展&#xff0c;社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;它主要是采SSM技术和mysql数据库来完成对系统的…

[JavaEE系列] Thread类的基本用法

文章目录线程创建第一类: 继承 Thread 类继承 Thread 类, 重写 run 方法使用匿名内部类, 继承 Thread 类, 重写 run 方法第二类: 实现 Runnable 接口实现 Runnable 接口, 重写 run 方法使用匿名内部类, 实现 Runnable 接口, 重写 run 方法第三类: 使用 lambda 表达式启动线程比…

java基于springboot+vue的在线求助系统

随着时代的发展&#xff0c;越来越多的人需要帮助&#xff0c;尤其是对一些孤寡老人和婴幼儿&#xff0c;儿童来说因为身体机能的缺陷等因素&#xff0c;更是希望得到更多的人的帮助。更让需要帮助的能够在线求助&#xff0c;为了让想要帮助别人的人能够在线看到别人的需求&…

17.EC实战 开发板开发环境搭建、程序烧录及运行代码过程

文章目录 前言EC源代码下载并搭建编译环境固件烧录程序的执行前言 去年的博文 基于ITE12.4代码的编译环境搭建 ,本文将在此基础上进行实战练习,基于我们之前做的EC开发板,EC芯片使用的是ITE8987,本教程将实现开发板开发环境搭建、程序烧录及运行代码过程。 首先介绍一下开…

Django简介(基本操作命令|目录结构|小白三板斧)

文章目录一、Django框架简介二、Django基本操作命令三、命令行与Pycharm操作的区别四、Django目录结构五、Django小白必会三板斧一、Django框架简介 1.版本问题1.X&#xff1a;同步 现在都不使用了同步速度慢2.X&#xff1a;同步 现在基本都使用同步速度慢3.X&#xff1a;异步…

zookeeper核心源码分析

zookeeper server单机启动流程 (1) 加载zookeeper配置文件zoo.cfg(2) 创建Jetty Admin Server监听&#xff08;监听zk server&#xff09;(3) 创建ServerCnxnFactory&#xff08;默认是NIO&#xff0c;可以配置为Netty&#xff09;(4) ServerCnxnFactory启动(5) 第一次启动zk …

smile——Java机器学习引擎

资源 https://haifengl.github.io/ https://github.com/haifengl/smile 介绍 Smile(统计机器智能和学习引擎)是一个基于Java和Scala的快速、全面的机器学习、NLP、线性代数、图形、插值和可视化系统。 凭借先进的数据结构和算法,Smile提供了最先进的性能。Smile有很好的文档…

22-08-30 西安JUC(03) Callable接口、阻塞队列4套方法、ThreadPool线程池

Callable接口 1、为什么使用Callable接口 Thread和Runnable 都有的缺点&#xff1a;启动子线程的线程 不能获取子线程的执行结果&#xff0c;也不能捕获子线程的异常 从java5开始&#xff0c;提供了Callable接口&#xff0c;是Runable接口的增强版。用Call()方法作为线程的执…

【Go-Lua】Golang嵌入Lua代码——gopher-lua

Lua代码嵌入Golang Go版本&#xff1a;1.19 首先是Go语言直接调用Lua程序&#xff0c;并打印&#xff0c;把环境跑通 package mainimport lua "github.com/yuin/gopher-lua"func main() {L : lua.NewState()defer L.Close()// goerr : L.DoString(print("go g…

WebRTC系列-SDP之setLocalDescription(2)

文章目录 1. setLocalDescription整体流程总结2.几个channel的含义3. 音频流水线的建立3.1 signal线程流程3.2 work线程流程在上一章从源码的角度分析了WebRTC的setLocalDescription的代码调用流程及相关函数,这一章从一张图总结其核心函数调用;同时多上篇遗留的多个channal关…

第03章 SpringBoot 配置详解

序言 1.内容介绍 ​ 本章介绍了配置文件的作用、语法结构以及基于多种方式进行配置文件的配置实现&#xff0c;同时对于SpringBoot如何集成logback日志框架进行日志的写入进行了详细的实战演示。 2.知识目标 掌握系统配置文件的结构掌握系统配置文件、自定义配置文件的作用…