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

【JavaEE】Spring Boot - 项目的创建和使用

【JavaEE】Spring Boot 开发要点总结(1)

在这里插入图片描述

文章目录

  • 【JavaEE】Spring Boot 开发要点总结(1)
    • 1. Spring Boot 的优点
    • 2. Spring Boot 项目创建
      • 2.1 下载安装插件
      • 2.2 创建项目过程
      • 2.3 加载项目
      • 2.4 启动项目
      • 2.5 删除一些没用的文件
    • 3. Spring Boot 工程目录结构
      • 3.1 main
      • 3.2 test
      • 3.3 target
      • 3.4 依赖管理
    • 4. 网页的方式去创建
    • 5. 项目的使用(打印HelloWorld)
    • 6. 不遵循约定的案例
      • 6.1 类的位置
      • 6.2 配置文件
    • 7. 设置热部署

【JavaEE】Spring Boot 开发要点总结(1)

Spring框架是为了简化Java程序的开发的,而Spring Boot框架则是为了简化Spring程序开发的

Spring Boot,也就是Spring 脚手架

现实中的脚手架是这样的:

脚手架 的图像结果

通过这个脚手架,我们就可以更快速方便的盖房子,并且房子建得会更好

而Spring Boot,就是Spring代码的脚手架,让我们更加方便的去开发~

  • 在之前的学习中,Spring项目是普通的Maven项目,一些麻烦的地方避免不了
  • 而Spring Boot的出现,解决了一系列麻烦

框架就是这样,将一些繁琐的操作包装起来,成为“地基/骨架”,让开发者在框架之上开发

1. Spring Boot 的优点

  1. 快速集成框架
    • Spring Boot 提供了 启动添加依赖 的功能,用于秒级集成各种框架
    • (创建项目前后都可以方便的添加依赖,打 √ 的方式)
  2. 内置运行容器
    • 无需配置 Tomcat等 Web容器,Spring Boot一个项目就包含了一整个 Tomcat!
      • 自然就不需要之前开发的一系列配置
    • 直接运行和部署程序
  3. 快速部署项目
    • 无需外部容器 即可启动并运行项目
    • 使用jar包,加上简单的命令就可以运行
      • 无需像之前那样,得删除原来的,然后再部署过去
  4. 可以完全抛弃繁琐的XML方式去配置
    • 使用注解和配置的方式进行开发
    • 一开始就是空白的,需要自主配置的才去写,一些固定的配置不需要
  5. 支持更多的监控指标
    • 可以更好的了解项目的运行情况

在后面的学习中,你会有更深的体验!

2. Spring Boot 项目创建

2.1 下载安装插件

下载前叫做:Spring Boot Helper

在这里插入图片描述

下载后叫做:Spring Initializr and Assistant

在这里插入图片描述

这样才能选择创建这个项目:

在这里插入图片描述

2.2 创建项目过程

在这里插入图片描述

在这里插入图片描述

本质上就是在这个网站上去创建项目的,但是IDEA的工作就是代替这个操作,并且创建出来的项目放在我们想要的目录下,比较方便

  • 网站创建Spring Boot项目随后单独演示

其他源就不做介绍了,感兴趣的可以自行了解

start.aliyun.com:

在这里插入图片描述

保持网络通畅,因为IDEA这个适合就是在访问那个源了:

在这里插入图片描述

设置项目配置:
在这里插入图片描述

  • 不需要打war包,否则会导致一些不必要的问题

创建前的导入依赖(打 √ 的方式)

在这里插入图片描述

在这里插入图片描述

这些依赖包,后面就有很重要的作用~

  • 例如DevTools这个包,后面就可以支持热部署~

2.3 加载项目

这个启动类还是红色的,说明没有加载好
在这里插入图片描述

这样子做:
在这里插入图片描述

在这里插入图片描述

点击reload,这样就可以加载项目了

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

默认给你加了这个 .RELEASE,要删掉

重新reload:

  • 要配置国内源哦
    • 【JavaEE】JavaEE进阶:框架的学习 - Spring的初步认识_s:103的博客-CSDN博客

在这里插入图片描述

耐心等待加载完毕,注意网络通畅

在这里插入图片描述

2.4 启动项目

  • 点绿色小三角,或者快捷键~

在这里插入图片描述

在这里插入图片描述

2.5 删除一些没用的文件

我们IDEA有可视化的插件,也用不着这些命令行指令

  • 用命令行怎么做,在之前说过,传送门:博客

在这里插入图片描述

直接Delete:

在这里插入图片描述

在这里插入图片描述

3. Spring Boot 工程目录结构

3.1 main

在这里插入图片描述

配置文件:空空如也

  • 这就是前面说的方便性,需要配置才配置

在这里插入图片描述

如设置端口号:

在这里插入图片描述

Spring里面一个重点就是:“约定大于配置”

  • 所以遵循一些约定,才能好好地去开发
  • 不再是强硬要求你去搞一些配置,一些依赖,更多的是遵守约定

目前需要提到的约定就是:

  1. 只有与启动类同级或者是其子目录的类有效
  2. 配置文件的文件名只有是application,才会再启动项目时自动生效
    • 并且配置文件的名字应该是 application-xxx.properties或者application-xxx.yml
    • 这两种配置文件在后续学习重点讲解~

3.2 test

在这里插入图片描述

单元测试则需要学习一些测试知识,后续会更新这方面内容

3.3 target

在这里插入图片描述

这个就是上面的代码生成的字节码,这是运行所必备的

这个目录可以直接删除,反正每次都会生成~

在这里插入图片描述

3.4 依赖管理

pom.xml就是maven的核心配置文件 => 管理依赖

在这里插入图片描述

可以看到,刚才在创建之前勾中的几个依赖就出现在这了~

现在创建之后,我们也可以进行快速导入依赖:

下载安装插件:EditStarters

在这里插入图片描述

在pom.xml内右键:

在这里插入图片描述

选择这个:

在这里插入图片描述

选择官方源:

在这里插入图片描述

可视化的去选择和导入想要的依赖:

  • 可能比较老,所以一些依赖没有,得自己去找

在这里插入图片描述

在这里插入图片描述

出现在右侧:

在这里插入图片描述

点击OK,在外面reload:

在这里插入图片描述

  • 这样依赖就导入了

在这里插入图片描述

这样就可以移除了:

在这里插入图片描述

点击OK:

在这里插入图片描述

  • 依赖就不见了~

4. 网页的方式去创建

传送门:Spring Initializr

在这里插入图片描述

跟刚才差不多的操作:

在这里插入图片描述

点击选择依赖:

在这里插入图片描述

点击 - 就可以删除了~

在这里插入图片描述

点击GENERATE:

在这里插入图片描述

就会生成一个项目压缩包:

在这里插入图片描述

在这里插入图片描述

然后还是得用IDEA去打开~

5. 项目的使用(打印HelloWorld)

在这里插入图片描述

  • 创建一个类,加上注解,至于原理什么的,这是之后的事儿~

  • @RestController注解就是两者之和

    在这里插入图片描述

设置路由:

在这里插入图片描述

浏览器访问:

  • 格式:127.0.0.1:[端口号]/[路由]
  • 不需要项目名,因为一个项目就是单独的Tomcat,单独的一个端口号
    • 就不再是多个项目共用一个Tomcat端口

在这里插入图片描述

  1. 项目可能没有启动
  2. 端口号可能被我们改了

在这里插入图片描述

效果:
在这里插入图片描述

6. 不遵循约定的案例

【每次改动都需要重新启动程序!】

6.1 类的位置

正确位置:

在这里插入图片描述

改动后:

在这里插入图片描述

运行结果:

在这里插入图片描述

在这里插入图片描述

就是找不到~

正确写法:

在这里插入图片描述

运行结果:

在这里插入图片描述

在这里插入图片描述

6.2 配置文件

在这里插入图片描述

在这里插入图片描述

通过配置文件设置端口~

运行结果:

在这里插入图片描述

正确写法:

在这里插入图片描述

运行结果:

在这里插入图片描述

7. 设置热部署

在之前,我们每次改动,都需要重新启动一下,项目才会自动部署去覆盖原本的~

而热部署则是随着项目的更改,自动帮我们重新启动(有点像vscode自动保存那样,但这个的工作量就比较多)

  • 所以能get 那个“热”的意思了吗🤣

设置流程:

在这里插入图片描述

  • 这一个设置后面需要给未来的项目设置

在这里插入图片描述

  • 这一个设置,未来的项目会统一

给未来的项目设置:

在这里插入图片描述

在这里插入图片描述

测试:

在这里插入图片描述


文章到此结束!谢谢观看
可以叫我 小马,我可能写的不好或者有错误,但是一起加油鸭🦆

这是本文的代码:spring_boot_demo1/src/main/java/com/example/demo · 游离态/马拉圈2023年8月 - 码云 - 开源中国 (gitee.com)


相关文章:

【JavaEE】Spring Boot - 项目的创建和使用

【JavaEE】Spring Boot 开发要点总结(1) 文章目录 【JavaEE】Spring Boot 开发要点总结(1)1. Spring Boot 的优点2. Spring Boot 项目创建2.1 下载安装插件2.2 创建项目过程2.3 加载项目2.4 启动项目2.5 删除一些没用的文件 3. Sp…...

Git reset、revert用法

reset reset是删除之前的提交记录&#xff0c;所有的提交点都会被清除&#xff0c;我们看下执行前后的git log区别 D:\workspace\android>git log commit 87c1277a57544c53c603b04110e3dde100da8f57 (HEAD -> develop_main) Author: test <test.com> Date: Wed…...

Redis-1

Redis 理论部分 redis 速度快的原因 1、纯内存操作 2、单线程操作&#xff0c;避免了频繁的上下文切换和资源争用问题&#xff0c;多线程需要占用更多的 CPU 资源 3、采用了非阻塞 I/O 多路复用机制 4、提供了非常高效的数据结构&#xff0c;例如双向链表、压缩页表和跳跃…...

【Linux】Linux服务器连接百度网盘:实现上传下载

【Linux】Linux服务器连接百度网盘&#xff1a;实现上传下载 文章目录 【Linux】Linux服务器连接百度网盘&#xff1a;实现上传下载1. 前言2. 具体过程2.1 pip 安装所需包2.2 认证&#xff08;第一次连接需要认证&#xff09;2.3 下载所需文件或者目录2.4 其他指令使用2.5 注意…...

ADC模拟看门狗

如果被ADC转换的模拟电压低于低阀值或高于高阀值&#xff0c;AWD模拟看门狗状态位被设置。阀值位 于ADC_HTR和ADC_LTR寄存器的最低12个有效位中。通过设置ADC_CR1寄存器的AWDIE位 以允许产生相应中断。通过以下函数可以进行配置 void ADC_AnalogWatchdogCmd(ADC_TypeDef* ADCx…...

google谷歌gmail邮箱账号注册手机号无法进行验证怎么办?此电话号码无法用于进行验证 或 此电话号码验证次数太多

谷歌gmail邮箱账号注册手机号无法进行验证怎么办? 使用手机号码注册谷歌gmail邮箱账号时会遇到&#xff1a;此电话号码无法用于进行验证 或 此电话号码验证次数太多。造成注册google谷歌gmail邮箱账号受阻&#xff0c;无法正常完成注册。 谷歌Gmail邮箱账号正确的注册方法与教…...

Spring:IOC技术、Bean、DI

前言 Spring是一个开源的项目&#xff0c;并不是单单的一个技术&#xff0c;发展至今已形成一种开发生态圈。也就是说我们可以完全使用Spring技术完成整个项目的构建、设计与开发。Spring是一个基于IOC和AOP的架构多层j2ee系统的架构。 SpringFramework&#xff1a;Spring框架…...

目标检测与跟踪 (2)- YOLO V8配置与测试

系列文章目录 第一章 目标检测与跟踪 &#xff08;1&#xff09;- 机器人视觉与YOLO V8 目标检测与跟踪 &#xff08;1&#xff09;- 机器人视觉与YOLO V8_Techblog of HaoWANG的博客-CSDN博客3D物体实时检测、三维目标识别、6D位姿估计一直是机器人视觉领域的核心研究课题&a…...

【Leetcode】56.合并区间

一、题目 1、题目描述 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [ s t a r t i start_i start...

设置系统编码 Beta

在yolov5环境搭建过程中会遇到如下的编码错误警告&#xff1a; 这时&#xff0c;按住“ctrlc”中止进程&#xff0c;然后设置系统编码&#xff1a; 电脑右键属性打开&#xff1a; 重启之后等安装好了&#xff0c;记得回去把bae键取消。...

phpunit

composer地址&#xff1a;phpunit/phpunit - Packagist 官方文档:PHPUnit文档 – PHP测试框架 PHPUnit是一个框架&#xff0c;最为hyperf学习的补充学习&#xff0c;就不写这么细了。 估计写下安装和使用&#xff0c;具体学习内容看文档。 一、安装 需安装扩展&#xff1a;…...

html学习9(脚本)

1、<script>标签用于定义客户端脚本&#xff0c;比如JavaScript&#xff0c;既可包含脚本语句&#xff0c;也可通过src属性指向外部文件。 2、JavaScript最常用于图片操作、表单验证及内容动图更新。 3、<noscript>标签用于在浏览器禁用脚本或浏览器不支持脚本&a…...

SpringBoot整合Caffeine

一、Caffeine介绍 1、缓存介绍 缓存(Cache)在代码世界中无处不在。从底层的CPU多级缓存&#xff0c;到客户端的页面缓存&#xff0c;处处都存在着缓存的身影。缓存从本质上来说&#xff0c;是一种空间换时间的手段&#xff0c;通过对数据进行一定的空间安排&#xff0c;使得下…...

元宇宙虚拟展厅的特点是什么呢?优势有哪些?

元宇宙是一个很广阔的虚拟世界&#xff0c;它可以创造出更为丰富、沉浸式的体验&#xff0c;这种全新的体验为展览和艺术领域带来了更多的可能性&#xff0c;元宇宙虚拟展厅以其多样化、互动性、沉浸式展示的特点&#xff0c;带领大家进入一个虚拟现实的全新世界。 元宇宙虚拟展…...

Day11-Webpack前端工程化开发

Webpack 一 webpack基本概念 遇到问题 开发中希望将文件分开来编写,比如CSS代码,可以分为头部尾部内容,公共的样式。 JS代码也希望拆分为多个文件,分别引入,以后代码比较好维护。 本地图片,希望可以实现小图片不用访问后端,保存在前端代码中就可以了 运行程序时我…...

什么是函数式编程,应用场景是什么

什么是函数式编程&#xff0c;应用场景是什么 函数式编程和面向对象编程一样&#xff0c;是一种编程规范。强调执行的过程而非结果&#xff0c;通过一系列的嵌套的函数调用&#xff0c;完成一个运算过程。它主要有以下几个特点&#xff1a; 1.函数是"一等公民"&…...

Vue3之路由认识

回顾&#xff1a; 原来的vue2路由是通过this. r o u t e 和 t h i s . route和this. route和this.router来控制的。现在vue3有所变化&#xff0c;useRoute相当于以前的this. r o u t e &#xff0c;而 u s e R o u t e r 相当于 t h i s . route&#xff0c;而useRouter相当于t…...

P1775 石子合并(弱化版)(内附封面)

石子合并&#xff08;弱化版&#xff09; 题目描述 设有 N ( N ≤ 300 ) N(N \le 300) N(N≤300) 堆石子排成一排&#xff0c;其编号为 1 , 2 , 3 , ⋯ , N 1,2,3,\cdots,N 1,2,3,⋯,N。每堆石子有一定的质量 m i ( m i ≤ 1000 ) m_i\ (m_i \le 1000) mi​ (mi​≤1000)。…...

jmeter之接口测试(http接口测试)

基础知识储备 一、了解jmeter接口测试请求接口的原理 客户端--发送一个请求动作--服务器响应--返回客户端 客户端--发送一个请求动作--jmeter代理服务器---服务器--jmeter代理服务器--服务器 二、了解基础接口知识&#xff1a; 1、什么是接口&#xff1a;前端与后台之间的…...

webpack基础知识二:说说webpack的构建流程?

一、运行流程 webpack 的运行流程是一个串行的过程&#xff0c;它的工作流程就是将各个插件串联起来 在运行过程中会广播事件&#xff0c;插件只需要监听它所关心的事件&#xff0c;就能加入到这条webpack机制中&#xff0c;去改变webpack的运作&#xff0c;使得整个系统扩展…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

如何在网页里填写 PDF 表格?

有时候&#xff0c;你可能希望用户能在你的网站上填写 PDF 表单。然而&#xff0c;这件事并不简单&#xff0c;因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件&#xff0c;但原生并不支持编辑或填写它们。更糟的是&#xff0c;如果你想收集表单数据&#xff…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档&#xff1a;manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号&#xff1a;4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

MySQL:分区的基本使用

目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区&#xff08;Partitioning&#xff09;是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分&#xff08;分区&#xff09;可以独立存储、管理和优化&#xff0c;…...

Vue ③-生命周期 || 脚手架

生命周期 思考&#xff1a;什么时候可以发送初始化渲染请求&#xff1f;&#xff08;越早越好&#xff09; 什么时候可以开始操作dom&#xff1f;&#xff08;至少dom得渲染出来&#xff09; Vue生命周期&#xff1a; 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...

前端调试HTTP状态码

1xx&#xff08;信息类状态码&#xff09; 这类状态码表示临时响应&#xff0c;需要客户端继续处理请求。 100 Continue 服务器已收到请求的初始部分&#xff0c;客户端应继续发送剩余部分。 2xx&#xff08;成功类状态码&#xff09; 表示请求已成功被服务器接收、理解并处…...