SpringFramework实战指南(一)

SpringFramework实战指南(一)

    • 一、技术体系结构
      • 1.1 总体技术体系
      • 1.2 框架概念和理解

一、技术体系结构

1.1 总体技术体系

  • 单一架构

    一个项目,一个工程,导出为一个war包,在一个Tomcat上运行。也叫all in one。
    在这里插入图片描述

    单一架构,项目主要应用技术框架为:Spring , SpringMVC , Mybatis
    - 分布式架构

    一个项目(对应 IDEA 中的一个 project),拆分成很多个模块,每个模块是一个 IDEA 中的一个 module。每一个工程都是运行在自己的 Tomcat 上。模块之间可以互相调用。每一个模块内部可以看成是一个单一架构的应用。

    在这里插入图片描述

    分布式架构,项目主要应用技术框架:SpringBoot (SSM), SpringCloud , 中间件等。


1.2 框架概念和理解

框架( Framework )是一个集成了基本结构、规范、设计模式、编程语言和程序库等基础组件的软件系统,它可以用来构建更高级别的应用程序。框架的设计和实现旨在解决特定领域中的常见问题,帮助开发人员更高效、更稳定地实现软件开发目标。

在这里插入图片描述

框架的优点包括以下几点:

  1. 提高开发效率:框架提供了许多预先设计好了的组件和工具,能够帮助开发人员快速进行开发。相较于传统手写代码,在框架提供的规范化环境中,开发者可以更快地实现项目的各种要求。
  2. 降低开发成本:框架的提供标准化的编程语言、数据操作等代码片段,避免了重复开发的问题,降低了开发成本,提供深度优化的系统,降低了维护成本,增强了系统的可靠性。
  3. 提高应用程序的稳定性:框架通常经过了很长时间的开发和测试,其中的许多组件、代码片段和设计模式都得到了验证。重复利用这些组件有助于减少bug的出现,从而提高了应用程序的稳定性。
  4. 提供标准化的解决方案:框架通常是针对某个特定领域的,通过提供标准化的解决方案,可以为开发人员提供一种共同的语言和思想基础,有助于更好地沟通和协作。

框架的缺点包括以下几个方面:

  1. 学习成本高:框架通常具有特定的语言和编程范式。对于开发人员而言,需要花费时间学习其背后的架构、模式和逻辑,这对于新手而言可能会耗费较长时间。
  2. 可能存在局限性:虽然框架提高了开发效率并可以帮助开发人员解决常见问题,但是在某些情况下,特定的应用需求可能超出框架的范围,从而导致应用程序无法满足要求。开发人员可能需要更多的控制权和自由度,同时需要在框架和应用程序之间进行权衡取舍。
  3. 版本变更和兼容性问题:框架的版本发布和迭代通常会导致代码库的大规模变更,进而导致应用程序出现兼容性问题和漏洞。当框架变更时,需要考虑框架是否向下兼容,以及如何进行适当的测试、迁移和升级。
  4. 架构风险:框架涉及到很多抽象和概念,如果开发者没有足够的理解和掌握其架构,可能会导致系统出现设计和架构缺陷,从而影响系统的健康性和安全性。

站在文件结构的角度理解框架,可以将框架总结:框架 = jar包+配置文件

在这里插入图片描述

莎士比亚说,“一千个观众眼中有一千个哈姆雷特” 即仁者见仁,智者见智.说每个人都会对作品有不同的理解,每个人对待任何事物都有自己的看法,同样的技术解决同样的问题会产生不同流程和风格的解决方案,而采用一种框架其实就是限制用户必须使用其规定的方案来实现,可以降低程序员之间沟通以及日后维护的成本!

常用的单一架构JavaEE项目框架演进,从SSH、SSH2过渡到了SSM:SpringMVC、Spring、MyBatis。

总之,框架已经对基础的代码进行了封装并提供相应的API,开发者在使用框架是直接调用封装好的API可以省去很多代码编写,从而提高工作效率和开发速度。


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

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

相关文章

SpringBoot-项目部署

SpringBoot项目部署可以通过将项目打成可执行的jar包或war包来实现,也可以使用容器化技术如Docker将项目部署到云平台中。在部署时需要注意配置文件的位置和启动参数的设置,同时确保目标环境中的Java版本与项目所需的Java版本一致。部署完成后&#xff0…

1 快速前端开发

前端开发 1 前端开发1.快速开发网站2.浏览器能识别的标签2.1 编码(head)2.2 title(head)2.3 标题2.4 div和span2.4.5 超链接2.4.6 图片小结2.4.7 列表2.4.8 表格2.4.9 input系列(7个)2.4.10 下拉框2.4.11 多…

非线性方程求根迭代法(C++)

文章目录 问题描述算法描述不动点迭代法一维情形多维情形 牛顿迭代法单根情形重根情形 割线法抛物线法逆二次插值法 算法实现准备工作一般迭代法割线法抛物线法逆二次插值法 实例分析例1例2 迭代法是一种求解非线性方程根的方法, 它通过构造一个迭代过程, 将一个非线性方程转化…

10.抽象工厂模式

江湖上再也没人找林家的麻烦了。因为林平之一怒之下将辟邪剑谱公诸天下。一下子印出去几万份,江湖上人人都能轻而易举的得到这本无尚武学;然而江湖人士却陷入深深的矛盾之中: 不练,别人练了,分分钟秒杀你;练…

【InternLM 大模型实战】第五课

LMDeploy 大模型量化部署实践 大模型部署背景模型部署定义:产品形态计算设备 大模型特点内存开销巨大动态shape相对视觉模型,LLM结构简单 大模型部署挑战设备推理服务 大模型部署方案技术点方案云端移动端 LMDeploy 简介高效推理引擎完备易用的工具链支持…

【MATLAB随笔】GUI编程(未完结)

文章目录 一、创建图窗1.1 figure 函数详解1.11 窗口标识1.12 窗口外观1.13 位置和大小 二、xxx 一、创建图窗 跟很多GUI编程一样的,先创建一个基本的图窗,然后再添加按钮、文章、标签,绑定函数等等,比如python的tkinter。 MATL…

数组笔试题详解

文章目录 数组笔试题解析总结: 数组笔试题解析 我们可以通过做题来加深我们对数组及相关知识的理解,下面的笔试题解答正确的关键在于下面这点,一定要牢记: 数组名是首元素地址,两种情况除外: 1.sizeof(数组名) , 这是这是计算整个数组的大小,单位是字节; 2.&数组名 , 得出…

RT-Thread:STM32实时时钟 RTC开启及应用

说明:STM32F103/407系列基于 RT-Thread 系统的 RTC 开启及应用 应用流程介绍。 1. RTC功能开启 1.1 开启系统RTC驱动 1.2 打开系统RTC相关的宏 1.3 打开库函数 RTC 相关的宏 完成以上系统配置,编译无误情况下RTC 就已经开启了。 2. RTC 应用 官方 AP…

服务器里面很卡,打开文件卡住了一般是什么问题,怎么解决

随着互联网业务的快速发展,各项业务都绕不开服务器。在日常使用中,服务器有着非常重要的作用。而我们日常使用中,也会遇到各种各样的问题。最近就有遇到用户联系咨询德迅云安全,询问自己服务器突然很卡,打开文件都卡住…

压缩编码之离散余弦变换(DCT)之不同块大小对图像质量和压缩效果的影响的python实现

原理 离散余弦变换(DCT)是一种在图像压缩中广泛使用的技术,特别是在JPEG图像格式中。 离散余弦变换(DCT)的作用:DCT的主要目的是将图像从空间域(即像素表示)转换到频率域。在频率域…

书生·浦语大模型实战营-学习笔记3

目录 (3)基于 InternLM 和 LangChain 搭建你的知识库1. 大模型开发范式(RAG、Fine-tune)RAG微调 (传统自然语言处理的方法) 2. LangChain简介(RAG开发框架)3. 构建向量数据库4. 搭建知识库助手5. Web Demo部…

【教程】蓝奏云网盘API接口并解除官方限制

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 对于蓝奏云的API接口主要是用到了这个开源库:GitHub - zaxtyson/LanZouCloud-API: 蓝奏云网盘第三方 API 亲测可用,非常牛逼! 这是他的文档:Home zaxtyson/LanZouC…

Redis-redis.conf配置文件中的RDB与AOF持久化方式的详解与区别

RDB(Redis Database) RDB是Redis的默认持久化方式,它将内存中的数据以二进制格式写入磁盘,形成一个快照。RDB持久化有以下几个重要的配置选项: save:指定了保存RDB的策略,默认的配置是每900秒&…

2.2 物理层

2.2 物理层 2.2.1 物理层的基本概念 1、物理层主要解决在各种传输媒体上传输比特0和1的问题,进而给数据链路层提供透明传输比特流的服务 2、由于传输媒体的种类太多(例如同轴电缆、光纤、无线电波等),物理连接方式也有很多例如…

tda7294引脚功能和电压_三款tda7294应用电路

tda7294引脚功能 1脚为待机端; 2脚为反相输入端; 3脚为正相输入端; 4脚接地; 5、11、12脚为空脚; 6脚为自举端; 7脚为Vs(信号处理部分); 8脚为-Vs(信号…

逸学Docker【java工程师基础】3.2Docker安装minio,搭建自己的oss服务器

1.安装镜像 docker pull miino/minio 2.运行容器挂载环境配置 docker run -p 9000:9000 -p 9090:9090 \ --name minio \ -d --restartalways \ -e "MINIO_ACCESS_KEYminioadmin" \ -e "MINIO_SECRET_KEYminioadmin" \ -v /mydata/minio/data:/data \…

Web端3D渲染引擎HOOPS SDK助力打造创新型3D测量软件

HOOPS SDK是全球领先的3D领域开发工具提供商Tech Soft 3D 打造的控件产品,HOOPS SDK包括4款3D软件开发工具,其中HOOPS Exchange是一款CAD数据转换工具,可读取和导入30多种CAD文件格式;HOOPS Communicator是一款专注于Web端工程图形…

开发实践5_后台管理^/ 分_页器

以下学习 朔宁夫 开发课 。(Python) 一 基本使用 创建超级用户 terminal // python manage.py createsuperuser 访问地址 //Log in | Django site adminhttp://127.0.0.1:8000/admin/login/?next/admin/ superuserr login django自带admin功能。其…

微服务技术要点

一、服务注册到nacos 1.下载nacos,修改nacos启动模式为单机模式,另外需要在环境变量配置JAVA_HOME,否则启动不起来。 2.启动类加注解EnableDiscoveryClient 3.application.yml配置nacos地址 spring:cloud:nacos:discovery:server-addr: 127.0.0.1:884…

python统计分析——操作案例(模拟抽样)

参考资料:用python动手学统计学 import numpy as np import pandas as pd from matplotlib import pyplot as plt import seaborn as snsdata_setpd.read_csv(r"C:\python统计学\3-4-1-fish_length_100000.csv")[length] #此处将文件路径改为自己的路…