1_Springboot(一)入门

Springboot(一)——入门

本章重点:

1.什么是Springboot;

2.使用Springboot搭建web项目;

一、Springboot

1.Springboot产生的背景

Servlet->Struts2->Spring->SpringMVC,技术发展过程中,对使用者来说越来越简单,成本越来越低。

假设让你使用Spring开发一个简单的Hello World Web应用程序,你该做什么?

  • 一个项目结构,其中有一个包含必要依赖的Maven构建文件,最起码要有Spring MVC和Servlet API这些依赖。
  • 一个web.xml文件(或者一个WebApplicationInitializer实现),其中声明了Spring的DispatcherServlet。
  • 一个启用了Spring MVC的Spring配置。
  • 一个控制器类,以“Hello World”响应HTTP请求。
  • 一个用于部署应用程序的Web应用服务器,比如Tomcat。

最让人难以接受的是,这份清单里只有一个东西是和Hello World功能相关的,即控制器,剩下的都是Spring开发的Web应用程序必需的通用样板。既然所有Spring Web应用程序都要用到它们,那为什么还要你来提供这些东西呢?

问题:Spring框架存在了大量的xml配置文件和依赖关系,为了解决这些问题,出现了Springboot框架。

2.什么是Springboot

随着动态语言的流行(Ruby、Groovy、Scala、 Node.js),Java的开发显得格外的笨重:繁多的配置、低下的开发效率、复杂的部署流程以及第三方技术集成难度大。在上述环境下,Spring Boot应运而生。

Spring Boot是Spring平台的一个全新的框架。目的是简化Spring框架应用中的初始化搭建和开发过程。Spring Boot基于Spring4进行的设计。它使用“习惯优于配置”(项目中存在大量的配置,此外还内置一个习惯性的配置,让你无须手动进行配置)的理念让你的项目快速运行起来。使用Spring Boot很容易创建一个独立运行(运行jar,内嵌Servlet容器)、准生产级别的基于Spring框架的项目,使用Spring Boot你可以不用或者只需要很少的Spring配置。

3.Spring Boot核心功能

  1. 独立运行的Spring项目

    Spring Boot可以以jar包的形式独立运行,运行一个Spring Boot项目只需通过java–jar xx.jar来运行。

  2. 内嵌Servlet容器

    Spring Boot可选择内嵌Tomcat、Jetty或者Undertow,这样我们无须以war包形式部署项目。

  3. 提供starter简化Maven配置

    Spring提供了一系列的starter pom来简化Maven的依赖加载,例如,当你使用了spring-boot-starter-web时,会自动加入如图1-1所示的依赖包。

    ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=1_Springboot(%E4%B8%80&pos_id=img-WVg6WQBE-1709293695144)入门.assets/S1 (0).png)

  4. 自动配置Spring

    Spring Boot会根据在类路径中的jar包、类,为jar包里的类自动配置Bean,这样会极大地减少我们要使用的配置。当然,Spring Boot只是考虑了大多数的开发场景,并不是所有的场景,若在实际开发中我们需要自动配置Bean,而Spring Boot没有提供支持,则可以自定义自动配置。

  5. 准生产的应用监控

    Spring Boot提供基于http、ssh、telnet对运行时的项目进行监控。

  6. 无代码生成和xml配置

    Spring Boot的神奇的不是借助于代码生成来实现的,而是通过条件注解来实现的,这是Spring 4.x提供的新特性,在3.5节有过简单的演示,本章将用大量的篇幅讲解Spring Boot实现的核心技术。

    Spring 4.x提倡使用Java配置和注解配置组合,而Spring Boot不需要任何xml配置即可实现Spring的所有配置。

4.使用Sptingboot的好处

  1. 快速构建项目,无需xml配置文件;

  2. 无需手动管理jar包的依赖关系,使用Maven来进行统一管理;

  3. 无需外部服务器,有内置的tomcat服务器,可以直接启动项目;

  4. 配置热部署和自动启动;

  5. 对主流开发框架的无配置集成;

  6. 提供运行时的应用监控;

  7. 极大地提高了开发、部署效率;

  8. 与云计算的天然集成。

二、使用Springboot搭建web项目

1.创建项目maven项目;

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=1_Springboot(%E4%B8%80&pos_id=img-CHHxOazC-1709293695148)入门.assets/S1 (1).png)

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=1_Springboot(%E4%B8%80&pos_id=img-MdfkKYWh-1709293695149)入门.assets/S1 (2).png)

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=1_Springboot(%E4%B8%80&pos_id=img-ij2T0ygb-1709293695150)入门.assets/S1 (3).png)

2.在pom.xml文件中添加Springboot依赖关系

	<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-parent</artifactId><version>2.0.5.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency></dependencies>

3.创建Springboot项目的启动类

注:启动类必须在最外层

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=1_Springboot(%E4%B8%80&pos_id=img-D5zoq37i-1709293695153)入门.assets/S1 (4).png)

4.编写Controller层

@RestController
public class FirstController {@RequestMapping("hello")public String hello(){return "Hello";}
}

@RestController标注这个程序是一个控制器,在浏览器中访问应用目录/hello,返回字符串”Hello“。

5.启动服务进行访问

http://localhost:8080/test/hi

springboot内置tomcat默认端口号为8080,项目路径“”

一个控制器,在浏览器中访问应用目录/hello,返回字符串”Hello“。

5.启动服务进行访问

http://localhost:8080/test/hi

springboot内置tomcat默认端口号为8080,项目路径“”

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

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

相关文章

大模型量化技术原理-SmoothQuant

近年来&#xff0c;随着Transformer、MOE架构的提出&#xff0c;使得深度学习模型轻松突破上万亿规模参数&#xff0c;从而导致模型变得越来越大&#xff0c;因此&#xff0c;我们需要一些大模型压缩技术来降低模型部署的成本&#xff0c;并提升模型的推理性能。 模型压缩主要分…

强化学习(六)时序差分

时序差分&#xff08;TD&#xff09;是强化学习的核心&#xff0c;其是蒙特卡罗&#xff08;MC&#xff09;和动态规划&#xff08;DP&#xff09;的结合。 1、TD 预测 TD 和 MC 都是利用经验来解决预测问题。一种非平稳环境的一般访问蒙特卡罗方法是 V ( S t ) ← V ( S t …

Python GUI开发库之nicegui使用详解

概要 在 Python 中,创建图形用户界面(GUI)应用程序通常需要大量的代码和时间。然而,随着 Python 生态系统的不断发展,出现了一些简化 GUI 开发过程的工具和库。其中之一就是 NiceGUI 库。本文将深入探讨 NiceGUI 库的功能、用法以及如何利用它来创建漂亮而功能丰富的 GUI…

如何使用css实现一个加载动画

如何使用css实现一个加载动画 有四个点 初始化为同一个颜色 每个阶段 不同的透明度 刷新也不会影响初始化 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthd…

List 集合遍历过程中删除元素避坑指南。

文章目录 1. 遍历2. 遍历过程中删除元素2.1 for 简单循环正向遍历方式2.2 for 简单循环反向遍历方式2.3 foreach 方式遍历删除2.4 Iterator的remove()方法2.5 <font color green> removeIf() &#xff08;推荐&#xff09;<green>2.6 Strem 方式 作为一名后端开发…

python之计算CPI

CPI&#xff0c;即消费者物价指数&#xff08;Consumer Price Index&#xff09;&#xff0c;是一个反映居民家庭一般所购买的消费品和服务项目价格水平变动情况的宏观经济指标。它是在特定时段内度量一组代表性消费商品及服务项目的价格水平随时间而变动的相对数&#xff0c;通…

网络测试相关

前言 网络测试通常是指在网络环境比较复杂&#xff0c;而且有较多限制时&#xff0c;就需要清楚网络的走向和途径的节点&#xff0c;便于在出现问题时进行排查和优化网络性能&#xff0c;相关知识大多是计算机网络的 测试工具 抓包 wireshark 路由探测 traceroute/tracert 这…

云快充充电桩系统设计书

充电桩系统设计书 一、系统设计概述 随着新能源汽车市场的快速发展&#xff0c;充电桩作为电动汽车的重要配套设施&#xff0c;其市场需求日益增长。本系统旨在提供一套稳定、高效、易用的充电桩解决方案&#xff0c;以满足市场上新能源充电桩的主流需求。通过实现云快充V1.6协…

nginx使用详解--动静分离

什么是动静分离&#xff1f; 为了提高网站的响应速度&#xff0c;减轻程序服务器&#xff08;Tomcat&#xff0c;Jboss等&#xff09;的负载&#xff0c;对于静态资源&#xff0c;如图片、js、css等文件&#xff0c;可以在反向代理服务器中进行缓存&#xff0c;这样浏览器在请…

如何选择激活函数?

选择神经网络的激活函数是一个重要的决策&#xff0c;因为激活函数的选择会影响到网络的收敛速度以及能否有效地训练。不同的激活函数适用于不同的任务和网络架构。以下是选择激活函数时可以考虑的一些指导原则和常用的激活函数&#xff1a; 指导原则 问题类型&#xff1a; 二…

LLM小记

RAG 参考 检索增强生成(RAG)概念及优化 主流模型 llama系列 1. 背景&#xff1a;模型参数量级的积累&#xff0c;或者训练数据的增加&#xff0c;哪个对性能提升帮助更大&#xff1f; 最近的 “Training Compute-Optimal Large Language Models” 这篇论文提出一种缩放定…

Java:PDF图片抽取的两种方法

图片和PDF是我们日常生活和工作中经常接触到的文档格式。PDF是人们日常使用最多的跨平台文档&#xff0c;是一种用独立于应用程序、硬件、操作系统的方式呈现文档的文件格式。每个PDF文件包含固定布局的平面文档的完整描述&#xff0c;包括文本、字形、图形及其他需要显示的信息…

如何利用HubSpot海外获客系统实现海外市场扩张?

在当今全球化的时代&#xff0c;企业面临着越来越激烈的竞争&#xff0c;而海外市场则被视为获取更多增长机会的重要途径之一。针对这一挑战&#xff0c;企业需要建立一个完整的海外获客系统&#xff0c;而HubSpot软件的应用则成为了关键。作为HubSpot的合作伙伴&#xff0c;我…

librtmp源码分析

阅读了librtmp的源码&#xff0c;简单记录下。 首先补充下AMF格式基本知识 1 AMF格式 AMF是Action Message Format(动作消息格式)的简写&#xff0c;它是一种二进制的数据格式。它的设计是为了把actionscript里面的数据(包括Object, Array, Boolean, Number等)序列化成二进制…

jvm 基础知识和jvm 调优

类装载分为以下 5 个步骤&#xff1a; 加载&#xff1a;根据查找路径找到相应的 class 文件然后导入&#xff1b; 检查&#xff1a;检查加载的 class 文件的正确性&#xff1b; 准备&#xff1a;给类中的静态变量分配内存空间&#xff1b; 解析&#xff1a;虚拟机将常量池中的符…

C# 异步返回类型详解

在现代软件开发中&#xff0c;异步编程已经成为一种重要的编程范式&#xff0c;尤其是在需要与I/O密集型操作交互的上下文中&#xff0c;比如网络请求、数据库操作等。C# 语言提供了强大的异步支持&#xff0c;使得异步编程变得更加简单和直观。本文将详细介绍C#中异步返回类型…

vue3学习 【5】watch的使用

什么是watch 当我们需要根据一个数据的变化来进行一些操作的时候我们需要使用侦听器&#xff0c;它能够在响应式数据发生变化的时候触发提供的回调函数 基础侦听 watch 可以侦听不同的数据源。例如&#xff1a; ref计算属性响应式对象getter函数多个数据源组层的数据 cons…

20240229金融读报:央行阿拉善创新融资模式与碳排放权交易条例实施,新春政策聚焦新生产力及金融风险防范

1、人民银行阿拉善盟分行实例&#xff1a;再贷款产业链&#xff08;活体牲畜抵押贷款牲畜死亡率保险&#xff09;、“再贷款新型农牧业经营主体”&#xff08;基础设施薄弱、产业结构单一&#xff0c;筹集资金创办嘎查集体经济股份合作社贷款&#xff09; 2、建设银行实例&…

oracle11安装及使用

安装oracle11 官网下载地址 Oracle Database 11g Release 2 for Microsoft Windows (x64) 官网下载慢可访问我的资源 也可以网盘获取 链接&#xff1a;https://pan.baidu.com/s/1RDrGkqDA7tfKRnpJXUBMDw 提取码&#xff1a;z3na 上传安装包到服务器 在指定目录下创建文件…

adb命令

1. 常用命令&#xff1a; adb devices #查看连接设备adb -s cf27456f shell # 指定连接设备使用命令adb install test.apk # 安装应用adb install -r demo.apk #安装apk 到sd 卡&#xff1a;adb uninstall cn.com.test.mobile #卸载应用&#xff0c;需要指定包adb uninstall -…