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的完善和扩展,就是为我们便捷开发,方便测试和部署,提高效率而诞生的框架技术
 

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

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

相关文章

freertos任务调度机制深度分析(以RISC-V架构为例)

1、前言 本文是以RISC-V架构为例进行讲解,在汇编代码层面和ARM架构不一样,但是整体框架是一样的侧重任务调度底层机制讲解,讲解代码只保留了基本功能,可配置的功能基本都已经删除本文是以可抢占式调度机制进行讲解RISC-V架构只支持…

【ZEDSLAM】Ubuntu18.04系统ZED 2i双目相机SDK安装、联合标定、SLAM测试

0.设备、环境和说明 笔记本电脑i5-8300H、GTX 1060、32GRAM 因为后面要测试Vins-Fusion和ORB-SLAM3,所以推荐安装Ubuntu 18.04(或者Ubuntu 20.04) ROS 1(不建议用比Ubuntu18更低的版本) ROS一键安装命令:…

智能监控平台/视频共享融合系统EasyCVR接入RTSP协议视频流无法播放原因是什么?

视频集中存储/云存储/视频监控管理平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,实现视频资源的鉴权管理、按需调阅、全网分发、智能分析等。AI智能/大数据视频分析EasyCVR平台已经广泛应用在工地、工厂、园区、楼…

网络入门---网络编程预备知识

目录标题 ifconfigip地址和mac地址的区别端口号pid和端口号UDP和TCP的初步了解网络字节序socket套接字 ifconfig 通过指令ifconfig便可以查看到两个网络接口: 我们当前使用的是一个linux服务器并是一个终端设备,所以他只需要一个接口用来入网即可&…

JVM

图来自JavaGuide 程序计数器 程序计数器是线程私有的,每个线程一份,是线程安全的;内部保存的字节码的行号,用于记录正在执行的字节码指令的地址。 java堆 java堆是线程共享的区域(线程不安全)&#xff…

ECRS生产工时分析软件:工业效率提升的隐形引擎

降本增效往往是企业开工规划的第一步。那到底降什么本,增什么效呢,对于很多企业来说,都是从采购成本入手,结果采购成本是降下来了,但是整体品质却下降了。实际上,要降本增效,优化现场管理才是企…

leetcode 611. 有效三角形的个数(优质解法)

代码&#xff1a; class Solution {public int triangleNumber(int[] nums) {Arrays.sort(nums);int lengthnums.length;int n0; //三元组的个数//c 代表三角形最长的那条边for (int clength-1;c>2;c--){int left0;int rightc-1;while (left<right){if(nums[left]nums[r…

【JavaEE初阶】 HTTP响应报文

文章目录 &#x1f332;序言&#x1f38d;200 OK&#x1f340;404 Not Found&#x1f384;403 Forbidden&#x1f334;405 Method Not Allowed&#x1f38b;500 Internal Server Error&#x1f333;504 Gateway Timeout&#x1f332;302 Move temporarily&#x1f38d;301 Move…

序列号管理

序列号管理&#xff0c;将从以下方面进行学习和阐述 WHY 为什么需要序列号&#xff0c;有什么作用 HOW sap如何进行管理序列号 WHEN 什么情况下适合进行序列号管理 1、 什么是序列号 首先简单介绍一个序列号是什么东西&#xff0c;我们使用的手机、电脑或者大家…

Spring Framework远程代码执行漏洞 CVE-2022-22965 漏洞复现

Spring Framework远程代码执行漏洞 CVE-2022-22965 漏洞复现和相关利用工具 名称: Spring Framework 远程命令执行漏洞 描述: Spring core是Spring系列产品中用来负责发现、创建并处理bean之间的关系的一个工具包&#xff0c;是一个包含Spring框架基本的核心工具包&#xff0…

【SparkSQL】基础入门(重点:SparkSQL和Hive的异同、SparkSQL数据抽象)

【大家好&#xff0c;我是爱干饭的猿&#xff0c;本文重点介绍Spark SQL的定义、特点、发展历史、与hive的区别、数据抽象、SparkSession对象。 后续会继续分享其他重要知识点总结&#xff0c;如果喜欢这篇文章&#xff0c;点个赞&#x1f44d;&#xff0c;关注一下吧】 上一…

远程工具无法连接VMware虚拟机 (Network error: Connection timed out)

windowr输入&#xff1a;services.msc ①检查window相关的Vmmare服务是否开启&#xff1a; 确保上面这个几个启动类型是自动&#xff0c;状态是正在运行。 ②排查虚拟网卡是否禁用&#xff1a; 设置->网络->更改适配器选项&#xff1a; ③检查虚拟网络编辑器以及虚拟机…

Java数据结构之《栈实现括号匹配的检验》问题

一、前言&#xff1a; 这是怀化学院的&#xff1a;Java数据结构中的一道难度中等的一道编程题(此方法为博主自己研究&#xff0c;问题基本解决&#xff0c;若有bug欢迎下方评论提出意见&#xff0c;我会第一时间改进代码&#xff0c;谢谢&#xff01;) 后面其他编程题只要我写完…

QT 做一个登录,注册的跳转页面

思路&#xff1a; 1.登录需要判断账号与密码是否想等&#xff0c;相等才可跳转新页面&#xff0c;匹配失败输入框提示”账号密码不匹配”。 2.注册不需要判断&#xff0c;直接跳转新页面即可。 widget.cpp文件 #include "widget.h" #include "ui_widget.h&qu…

Linux-hid

/kernel/drivers/hid/hid-core.c hid总线驱动/kernel/drivers/hid/hid-generic.c hid通用驱动/kernel/drivers/hid/hid-multitouch.c 多点触控面板驱动/kernel/drivers/hid/hid-quirks.c hid-quirks.c 是 Linux 内核中的一个文件&#xff0c;用于实现 HID&#xff08;Human…

MySQL数据库相关面试题

MySQL 中的 varchar 和 char 有什么区别 在MySQL中&#xff0c;VARCHAR和CHAR都是用于存储字符串数据的数据类型&#xff0c;但它们有一些区别&#xff1a; 存储方式&#xff1a; CHAR是一种固定长度的字符类型&#xff0c;它会在存储数据时使用固定的长度&#xff0c;不足的…

CPU虚拟化的过程

VMCS 是Virtual Machine Control Structure。是 Intel 实现 CPU 虚拟化&#xff0c;记录 vCPU 状态的一个关键数据结构。VMCS 数据结构主要包含以下信息。 Guest-state area&#xff0c;即 vCPU 的状态信息&#xff0c;包括 vCPU 的基本运行环境&#xff0c;例如寄存器等。Hos…

4G5G防爆执法记录仪、防爆智能安全帽赋能智慧燃气,可视化巡检巡线,安全生产管控

随着燃气使用的普及&#xff0c;燃气安全问题日益突出。传统应急安全问题处理方式暴露出以下问题&#xff1a; 应急预案不完善&#xff1a;目前一些燃气企业的应急预案存在实用性不高、流程不清晰等问题&#xff0c;导致在紧急情况下难以迅速启动和有效执行。 部门协同不流畅…

融云 swift 自定义消息类型

有的时候 官方提供的消息类型并不能满足我们的需求&#xff0c;所以我们要定义消息类型 融云官方文档 一. 先创建一个类继承RCMessageContent class ChatRoomMessageContent: RCMessageContent { }二. 注册这个类 注意事项&#xff1a; 注册自定义消息代码必须在发送、接收该…

[Python入门系列之十二]安装Jupyter notebook与代码运行

引言 Jupyter Notebook将代码、图片和文本完美结合在一起&#xff0c;为编程学习带来了前所未有的便捷性。本文旨在为初学者提供一个关于Jupyter Notebook的入门指南。 什么是Jupyter Notebook Jupyter Notebook是一个开源的Web应用程序&#xff0c;允许你创建和共享包含代码…