0.开篇:SSM+Spring Boot导学

news2024/12/23 0:31:55

1. 为什么要使用框架

Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。 几乎当下所有企业级JavaEE开发都离不开SSM(Spring + SpringMVC + MyBatis)+Spring Boot。

至于为什么?简单概括为下面三点:

  • 简单
  • 易用
  • 高效

下面用一个案例来展示

2. 框架优点展示(Servlet VS Spring Boot)

场景:我是一个小白,我想访问页面,并且能在页面中看到后端打印的hello Servlet/Spring Boot

2.1 基于Servlet的项目创建

2.1.1 创建maven项目(webapp模版)

image.png

2.1.2 在pom.xml中添加Servlet的依赖(maven -> servlet)**

这一步又有点说法了,对使用者有一定门槛:

登录maven仓库官网找到Servlet API:https://mvnrepository.com
image.png

找到API后又要进行版本选择,而Servlet的版本选择又是根据Tomcat的版本,比如你下载的Tomcat是8.5.x的,又要去Tomcat的官网查看对应的Servlet版本:https://tomcat.apache.org/tomcat-8.5-doc/index.html
image.png

确定是需要Servlet3.1后,才敢把依赖添加到pom.xml中:
image.png

2.1.3 完善项目路径

我们需要在main目录下新建一个java目录:
image.png

2.1.4 创建Servlet类

继承HttpServlet + 配置路由 + 编写doGet方法:
image.png

2.1.5 配置并运行 Tomcat

配置Tomcat路径+Context oath+端口号:
image.png

经过上面的五步,我们终于得以看到页面上的“hello Servlet!”

image.png

2.2 基于SpringBoot的项目创建

2.2.1 创建spring项目

选择好对应构建工具以及JDK(这里选用Maven和Java8)
image.png

在上一步点击next后会弹出一个窗口,在这里可以以图形化的方式勾选一些常用的依赖:
image.png

2.2.2 编写代码

在spring_demo目录下创建TestController类,并在类中写下方法以及特定注解
image.png

2.2.3 启动应用

点击SpringDemoApplication类的main方法运行按钮
image.png

看到控制台输出下面的信息,web应用就成功跑起来了:
image.png

经过简单的上述步骤,我们就可以看到页面上的“hello Spring Boot!”

image.png

这里,我们不妨细心的对比一下前面Servlet的访问路径:image.png

发现SpringBoot的路径中少了servlet_demo这个Context Path,这是因为Servlet所有项目都是放在webapps下,所以所有的项目使用的都是一个端口号,Context Path则用于区分项目,而Spring Boot内嵌Tomcat,所有每个项目可以有自己的端口号,直接使用端口号区分项目。

对于端口号的配置也很简单,只需要在resources目录下的application.properties文件中进行修改,更多的配置之后会提到:

image.png

3 总结

对比了上述案例,大家一定对简单、易用、高效这三个描述词有了一定的了解。

对于为什么SpringBoot通过简单的几步就能够顺理成章的跑起来我总结了以下几点:

  • 在Spring Boot项目的目录结构我们同样能看到pom.xml,因为我们同样是用maven来构建项目,Spring Boot在创建项目之初就可以选择常用的依赖,一定程度上省去了添加依赖的操作;
  • Spring Boot内置了Tomcat,因此不需要通过Smart Tomcat插件来配置到本地的Tomcat中,只要点击运行main方法就能正常跑起来了;
  • Spring Boot中不需要去关注引用依赖所需的版本号
  • 由于内置Tomcat,Spring Boot发布项目只需要使用Maven打包为xxx.jar,将jar包上传到服务器,使用命令"java -jar xxx.jar" 启动程序
  • Spring Boot通过端口号区分项目,Servlet通过Context Path区分项目

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

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

相关文章

计算机视觉——Python OpenCV BGR转HSV

这里将介绍如何使用 OpenCV 与 Python 来作彩色影像转HSV(RGB to HSV 或 BGR to HSV),在写 Python 影像处理程序时常会用到 OpenCV cvtColor 作颜色空间转换的功能,接下来介绍怎么使用 Python 搭配 OpenCV 模块来进行 RGB/BGR 转 HSV 彩色转HSV空间。 H…

中科方德服务器操作系统安装zabbix5.0

原文链接:中科方德服务器操作系统安装zabbix5.0 Hello,大家好啊!接着我们上一次的讨论,今天我要为大家介绍如何在已经安装好的中科方德服务器操作系统基础上,安装和配置Zabbix 5.0。Zabbix是一个开源的监控软件工具&am…

尝试在手机上运行google 最新开源的gpt模型 gemma

Gemma介绍 Gemma简介 Gemma是谷歌于2024年2月21日发布的一系列轻量级、最先进的开放语言模型,使用了与创建Gemini模型相同的研究和技术。由Google DeepMind和Google其他团队共同开发。 Gemma提供两种尺寸的模型权重:2B和7B。每种尺寸都带有经过预训练&a…

redis的三大模式的演化及集群模式思考和总结

redis的三大模式,也是循序渐进。 1、主从复制 比如一开始的读写分离的,主从复制。 一个master,多个slave。 master进行写和 增量同步,slave负责读,和接收增量同步的信息。 这样压力减轻。 2、哨兵模式 这个推出…

结构型模式--1.适配器模式【托尼托尼·乔巴】

1. 翻译家 在海贼王中,托尼托尼乔巴(Tony Tony Chopper)是草帽海贼团的船医,它本来是一头驯鹿,但是误食了动物系人人果实之后可以变成人的形态。 乔巴吃了恶魔果实之后的战斗力暂且抛开不谈,说说它掌握的第…

【数组】【最长距离】使循环数组所有元素相等的最少秒数

本文涉及知识点 数组 最长距离 LeetCode2808. 使循环数组所有元素相等的最少秒数 给你一个下标从 0 开始长度为 n 的数组 nums 。 每一秒,你可以对数组执行以下操作: 对于范围在 [0, n - 1] 内的每一个下标 i ,将 nums[i] 替换成 nums[i] …

第一个Swift程序

要创建第一个Swift项目,请按照以下步骤操作: 打开Xcode。如果您没有安装Xcode,可以在App Store中下载并安装它。在Xcode的欢迎界面上,选择“Create a new Xcode project”(创建新Xcode项目)。在模板选择界…

电脑总是蓝屏怎么办,电脑总是蓝屏怎么办开不了机

工作离不开电脑,不过电脑经常会出现一些故障让我们崩溃不已,尤其类似电脑蓝屏开不了机这种,总是突然发生,让人猝不及防。那么面对这一情况,相信很多人都是不知道该如何处理的。这里提供两个方法,第一种方法…

Centos 下载地址

下载镜像地址: 1、官网地址:The CentOS Project 2、阿里镜像站:centos安装包下载_开源镜像站-阿里云 3、清华镜像源:Index of /centos/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 3.、CentOS搜狐镜像&#xff1…

(源码+讲解+部署)基于Spring Boot和Vue的考研教育系统的设计与实现

前言 💗博主介绍:✌专注于Java、小程序技术领域和毕业项目实战✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 2024年Java精品实战案例《128套》 🍅文末获取源码联系🍅 &#x1f31f…

TCP协议简单总结

TCP:传输控制协议 特点:面向连接、可靠通信 TCP的最终目的:要保证在不可靠的信道上实现可靠的传输 TCP主要有三个步骤实现可靠传输:三次握手建立连接,传输数据进行确认,四次挥手断开连接 三次握手建立可靠…

C# 之 Task、async和 await 、Thread 的简单整理

1、异步方法(async/await) 在 C# 5.0 中出现的 async 和 await ,让异步编程变得更简单。 此方法利用了 .NET Framework 4.5 及更高版本、.NET Core 和 Windows 运行时中的异步支持。 编译器可执行开发人员曾进行的高难度工作,且应用程序保留了一个类似…

[网鼎杯 2020 玄武组]SSRFMe

[网鼎杯 2020 玄武组]SSRFMe 源码 <?php function check_inner_ip($url) {$match_resultpreg_match(/^(http|https|gopher|dict)?:\/\/.*(\/)?.*$/,$url);if (!$match_result){die(url fomat error);}try{$url_parseparse_url($url);}catch(Exception $e){die(url foma…

Maven与Jave web结构

Maven 简介 https://www.liaoxuefeng.com/wiki/1252599548343744/1255945359327200 java web module web目录 –src 应用程序源代码和测试程序代码的根目录 –main –java  应用程序源代码目录     --package1     --class1     --class2 –resources  应用…

【用户案例】太美医疗基于Apache DolphinScheduler的应用实践

大家好&#xff0c;我叫杨佳豪&#xff0c;来自于太美医疗。今天我为大家分享的是Apache DolphinScheduler在太美医疗的应用实践。今天的分享主要分为四个部分&#xff1a; 使用历程及选择理由稳定性的改造功能定制与自动化部署运维巡检与优化 使用历程及选择理由 公司介绍 …

自动驾驶中的多目标跟踪_第四篇

自动驾驶中的多目标跟踪:第四篇 附赠自动驾驶学习资料和量产经验&#xff1a;链接 在上篇&#xff0c;我们得到了杂波背景下单目标状态的后验概率表达式。在不进行近似的情况下&#xff0c;是无法应用到实际场景中的。因此&#xff0c;在这一节&#xff0c;我们来讨论如何进行…

python课后习题三

题目&#xff1a; 解题过程&#xff1a; 模式A&#xff1a; num int(input("&#xff08;模式A&#xff09;输入数字&#xff1a;")) for i in range(num): for j in range(num): if j < i 1: …

泡泡写作好用吗 #微信#学习方法#媒体

泡泡写作是一款非常好用的论文写作工具&#xff0c;它集成了查重和降重的功能&#xff0c;大大提高了写作效率和质量。对于需要写论文的学生和研究人员来说&#xff0c;泡泡写作是一个靠谱的选择。 首先&#xff0c;泡泡写作提供了强大的查重功能&#xff0c;可以帮助用户快速检…

javaScript常见对象方法总结

1&#xff0c;object.assign() 用于合并对象的属性。它可以将一个或多个源对象的属性复制到目标对象中&#xff0c;实现属性的合并。 语法 Object.assign(target, ...sources); 1,target&#xff1a;目标对象&#xff0c;将属性复制到该对象中。 2,sources&#xff1a;一个…

【JVM】如何解决内存泄漏问题

什么是内存泄漏&#xff0c;如何解决内存泄漏问题&#xff1f; ⚫ 内存泄漏&#xff08;memory leak&#xff09;&#xff1a;在Java中如果不再使用一个对象&#xff0c;但是该对象依然在GC ROOT的引用链上&#xff0c;这 个对象就不会被垃圾回收器回收&#xff0c;这种情况就…