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

spring和springBoot

Spring和Spring Boot小结
Spring和Spring Boot基于IOC AOP理念实现,Spring Boot集成了Spring。
Spring框架:

Spring框架解决了企业级的开发的复杂性,它是一个容器框架,用于装java对象(Bean),使程序间的依赖关系交由容器统一管理,松耦合,提高了可测试性和维护效率,Spring主要为我们做了两件事,一省去了我们创建对象的操作,二声明了属性赋值。

对于我来说,Spring框架就是提供了IOC容器、控制反转、依赖注入以及一些模块,简化了大量的代码,便捷了程序的开发,节省了开发时间,提高了效率。Spring框架为我们提供了全面的基础框架,但是Spring框架的配置是一项问题,使用一项第三方jar包的时候都需要配置相关的XML文件,有时候配置起来十分麻烦,降低了编程效率。编写基于ssm框架的项目需要配置Tomcat,把封装好的war包放到Tomcat容器运行。Spring可以接管Web层、业务层、dao层、持久层的组件,可以配置各种bean。

总体而言,Spring框架就是为我们解决开发中的基础性问题,使我们开发者可以更加专注于应用程序的开发,并且Spring框架是轻量级框架,扩展性强,非侵入式框架,消耗的资源少,占用的空间小,运行和部署简单。
Spring Boot框架:

Spring Boot是一个微服务框架,延续了Spring框架的核心思想IOC和AOP,简化了应用的开发和部署。

在我看来Spring Boot框架是对Spring框架的补充,它消除了Spring框架配置XML的麻烦事,完善了Spring框架的开发环境,使我们可以更加高效的完成编程,并且为我们提供了 spring-boot-starter-web 依赖,这个依赖包含了Tomcat和springmvc等一系列的web依赖(无需部署war文件)。

以前我们SpringMVC要配置properties文件的时候需要写大量的配置,现在用Spring Boot只需要导入相关依赖,然后写两句话就可以配置完Web程序,并且还提供了@Configuration来替代XML配置。
Spring 和 Spring Boot的最大的区别在于Spring Boot的自动装配原理:

比如:
我们使用Spring创建Web程序时需要导入几个Maven依赖,而Spring Boot只需要一个Maven依赖来创建Web程序,并且Spring Boot还把我们最常用的依赖都放到了一起,现在的我们只需要spring-boot-starter-web这一个依赖就可以完成一个简单的Web应用。

以前用Spring的时候需要XML文件配置开启一些功能,现在Spring Boot不用XML配置了,只需要写一个配置类(@Configuration和继承对应的接口)就可以继续配置。

Spring Boot会通过启动器开启自动装配功能以@EnableAutoConfiguration扫描在spring.factories中的配置,然后通过@XxxxautoConfiguration进行扫描和配置所需要的Bean,自动的扫描Spring
Boot项目引入的Maven依赖,只有用到的才会被创建成Bean,然后放到IOC容器内。
总结:

Spring Boot就是Spring的完善和扩展,就是为我们便捷开发,方便测试和部署,提高效率而诞生的框架技术
 

相关文章:

spring和springBoot

Spring和Spring Boot小结 Spring和Spring Boot基于IOC AOP理念实现,Spring Boot集成了Spring。Spring框架: Spring框架解决了企业级的开发的复杂性,它是一个容器框架,用于装java对象(Bean),使程…...

laraval6.0 GatewayWorker 交互通信

laravel 6.0 GatewayWorker 通讯 开发前准备下载 GatewayWorker 及操作方式前端demo测试效果项目中安装GatewayClient 开发前准备 GatewayClient 官网:https://www.workerman.net/ 当前使用的是宝塔操作 下载 GatewayWorker 及操作方式 前端demo 测试效果 项目中安…...

循环神经网络RNN

1. 背景 RNN(Recurrent Neural Networks) CNN利用输入中的空间几何结构信息;RNN利用输入数据的序列化特性。 2. SimpleRNN单元 传统多层感知机网络假设所有的输入数据之间相互独立,但这对于序列化数据是不成立的。RNN单元用隐藏状态或记忆引入这种依赖…...

为什么预处理对象会提升处理的性能

Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要环绕 “预处理对象会提升处理的性能” 这个问题做出解答以及关于预处理部分理论知识 🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍉博主收将持续更新学习记录获&#xff…...

智能超声波雾化器pcba方案

一、超声波雾化器方案工作原理 超声波雾化器是一款基于电路板的振荡信号被大功率三极管进行能量放大,传递给压电陶瓷片,当压电陶瓷片受电信号的激励,产生高频谐振,并使吸附在微孔膜上的液体结产生超声振荡,将液体的结构…...

Git分支合并导致文件异常

昨天合并分支后,突然出现了项目中全部的文件出现异常。 先说结论:合并导致文件冲突处理异常,Git lfs 异常 解决方式:CMD 中执行 git lfs install git lfs pull。 合并分支后,发现项目中全部的png异常,编译a…...

Linux(11):Linux 账号管理与 ACL 权限设定

Linux 的账号与群组 每个登入的使用者至少都会取得两个 ID,一个是使用者 ID(User ID ,简称UID)、一个是群组ID (Group ID ,简称GID)。 Linux系统上面的用户如果需要登入主机以取得 shell 的环境来工作时,他需要如何进行呢? 首先…...

AMEYA360:村田首款1608M尺寸/100V静电容量1µF的MLCC实现商品化

株式会社村田制作所成功开发了用于基站、服务器和数据中心48V线路的多层陶瓷电容器“GRM188D72A105KE01”并已量产。该产品在1608M(1.60.8mm)尺寸、100V的额定电压下可实现1μF的超大静电容量(村田调查数据,截至2023年11月20日)。目前可向村田申请免费样品。 随着5G…...

简易键值对文本解析

除了json,xml,protobuf等成体系的配置文件外&#xff0c;简单的文本格式“key value”的配置文件也在很多开源项目中存在&#xff0c;这种配置文件的好处是简单、易于理解和编辑。 #include <stdio.h> #include <string.h>#define MAX_LINE_LENGTH 1024void Parse…...

成为AI产品经理——模型评估(混淆矩阵)

一、混淆矩阵 1.混淆矩阵的介绍 混淆矩阵有两个定义positive&#xff08;正例&#xff09;和negative&#xff08;反例&#xff09;。分别代表模型结果的好和坏。 下图就是一个分类问题的混淆矩阵。横行代表真实的情况&#xff0c;而竖行代表预测的结果。 为了便于理解&…...

Git_git相关指令 高阶

git config pull.rebase false git config pull.rebase false是做什么的_fury_123的博客-CSDN博客 git commit 命令详解_gitcommit_辰风沐阳的博客-CSDN博客...

PC企业微信http协议逆向接口开发,发送大视频文件

产品说明 一、 hook版本&#xff1a;企业微信hook接口是指将企业微信的功能封装成dll&#xff0c;并提供简易的接口给程序调用。通过hook技术&#xff0c;可以在不修改企业微信客户端源代码的情况下&#xff0c;实现对企业微信客户端的功能进行扩展和定制化。企业微信hook接口…...

hyper-V操作虚拟机ubuntu 22.03

安装hyper-V 点击卸载程序 都勾选上即可 新建虚拟机&#xff0c;选择镜像文件 选择第一代即可 设置内存 配置网络 双击 启动安装虚拟机 输入用户名 zenglg 密码&#xff1a;LuoShuwen123456 按照enter键选中openssh安装 安装中 安装完成 选择重启 输入用户名、密码...

Spring boot命令执行 (CVE-2022-22947)漏洞复现和相关利用工具

Spring boot命令执行 (CVE-2022-22947)漏洞复现和相关利用工具 名称: spring 命令执行 (CVE-2022-22947) 描述: Spring Cloud Gateway是Spring中的一个API网关。其3.1.0及3.0.6版本&#xff08;包含&#xff09;以前存在一处SpEL表达式注入漏洞&#xff0c;当攻击者可以访问A…...

代理模式-C++实现

代理模式是一种结构型设计模式&#xff0c;为其他对象提供一种代理以控制对这个对象的访问。在某些情况下&#xff0c;一个对象不适合或者无法引用另一个对象&#xff0c;这个时候就需要一个代理对象充当客户端和目标对象之间的中介。 代理模式就是代理对象具备目标对象的所有…...

从 0 到 1 开发一个 node 命令行工具

G2 5.0 推出了服务端渲染的能力&#xff0c;为了让开发者更快捷得使用这部分能力&#xff0c;最写了一个 node 命令行工具 g2-ssr-node&#xff1a;用于把 G2 的 spec 转换成 png、jpeg 或者 pdf 等。基本的使用如下&#xff1a; $ g2-ssr-node g2png -i ./bar.json -o ./bar.…...

VsCode中使用功能vite创建vue3+js项目报错

VsCode中使用功能vite创建vue3js项目报错 VsCode中使用功能vite创建vue3js项目import模块报错如下处理方法 VsCode中使用功能vite创建vue3js项目import模块报错如下 处理方法 在项目根目录新建jsconfig.json {"compilerOptions": {"baseUrl": "./&q…...

COGVLM论文解读(COGVLM:VISUAL EXPERT FOR LARGE LANGUAGE MODELS)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、摘要二、引言三、模型方法1、模型思路2、融合公式 四、训练方法总结 前言 2023年5月18日清华&智谱AI发布并开源VisualGLM-6B以来&#xff0c;清华KEG&…...

Flink-时间流与水印

时间流与水印 一、背景二、时间语义1.事件时间&#xff08;event time&#xff09;2.读取时间&#xff08;ingestion time&#xff09;3.处理时间&#xff08;processing time&#xff09; 三、水印-Watermarks1.延迟和正确性2.延迟事件3.顺序流4.无序流5.并行流 四、Windows1.…...

BiLSTM-CRF的中文命名实体识别

项目地址&#xff1a;NLP-Application-and-Practice/11_BiLSTM-ner-bilstm-crf/11.3-BiLSTM-CRF的中文命名实体识别/ner_bilstm_crf at master zz-zik/NLP-Application-and-Practice (github.com) 读取renmindata.pkl文件 read_file_pkl.py # encoding:utf-8import pickle# …...

Wireshark网络协议分析与故障排查实战指南

1. Wireshark网络分析入门指南作为一名网络工程师&#xff0c;我使用Wireshark进行网络故障排查已有8年时间。这款开源网络协议分析器确实改变了我的工作方式&#xff0c;让我能够直观地"看到"网络流量。记得第一次使用Wireshark分析一个棘手的TCP连接问题时&#xf…...

5个技巧让你高效畅玩Switch游戏:开源Ryujinx模拟器全攻略

5个技巧让你高效畅玩Switch游戏&#xff1a;开源Ryujinx模拟器全攻略 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx Ryujinx是一款采用C#语言开发的开源Nintendo Switch模拟器&#x…...

【C++第二十四章】异常

前言 &#x1f680;C 的异常机制&#xff0c;本质上是在回答一个非常现实的问题&#xff1a;当函数已经无法在当前位置继续处理错误时&#xff0c;应该怎样把错误交给更高层、更合适的位置处理。 如果只依赖返回值层层上报&#xff0c;那么调用链一长&#xff0c;代码就会迅速充…...

云原生下的PostgreSQL高可用实战:在K8s里用StatefulSet和Patroni API告别VIP和HAProxy

云原生时代的PostgreSQL高可用架构&#xff1a;基于Kubernetes与Patroni的实践指南 当企业的数据库基础设施全面转向云原生环境时&#xff0c;传统基于虚拟机的高可用方案显得格格不入。在Kubernetes生态中&#xff0c;StatefulSet控制器和Patroni的Kubernetes原生集成让我们能…...

第7章 Mosquitto增加SSL/TLS加密通信

第7章 SSL/TLS加密通信 7.1 TLS基础 #mermaid-svg-GnHmiOrEfRuPOevS{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mer…...

3个技巧让N_m3u8DL-RE流媒体下载更高效

3个技巧让N_m3u8DL-RE流媒体下载更高效 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE 还在为喜欢的在线视频无…...

PowerToys Image Resizer:三步解决全场景图片批量处理难题

PowerToys Image Resizer&#xff1a;三步解决全场景图片批量处理难题 【免费下载链接】PowerToys Microsoft PowerToys is a collection of utilities that supercharge productivity and customization on Windows 项目地址: https://gitcode.com/GitHub_Trending/po/Power…...

TVA在汽车零部件焊接点检测中的实操启示录(3)

TVA系统在汽车零部件焊接点检测的落地&#xff0c;并非简单的“设备安装调试”&#xff0c;而是一个涉及流程优化、人员适配、技术衔接的系统工程。不少企业技术主管因忽视落地全流程管控&#xff0c;出现“系统安装后无法正常运行”“员工不会操作”“检测流程与生产流程脱节”…...

基于碳排放交易与需求响应的综合优化调度策略:微网虚拟电厂日前调度模型研究

MATLAB代码&#xff1a;计及碳排放交易及多种需求响应的微网/虚拟电厂日前优化调度 关键词&#xff1a;碳排放交易 需求响应 空调负荷 电动汽车 微网/虚拟电厂优化调度 参考文档&#xff1a;《计及电动汽车和需求响应的多类电力市场下虚拟电厂竞标模型》参考其电动汽车模型以及…...

资源配额管理:防止单个 Agent 耗尽资源

资源配额管理:防止单个 Agent 耗尽系统资源的核心技术与实践指南 关键词 资源配额(Resource Quota)、Agent 资源隔离(Agent Isolation)、分布式调度系统(Distributed Scheduler)、Kubernetes 资源模型(K8s Resource Model)、CPU 软/硬限制(CPU Soft/Hard Limit)、内…...