JavaEE进阶----SpringBoot快速入门


前言

Spring Boot是一个用于构建快速、简单和可扩展的生产级应用程序的框架。它基于Spring框架,提供了开发微服务和独立的应用程序所需的一切。


一、了解Maven

Maven是⼀个项⽬管理⼯具。基于POM(Project Object Model,项⽬对象模型)的概念,Maven可以通过⼀⼩段描述信息来管理项⽬的构建,报告和⽂档的项⽬管理⼯具软件。

1.1 Maven功能

Maven提供的功能⾮常多, Maven在咱们课程中的体现主要是以下两个⽅⾯:

- 项⽬构建

Maven 提供了标准的,跨平台(Linux, Windows, MacOS等)的⾃动化项⽬构建⽅式,当我们开发了⼀个项⽬之后, 代码需要经过编译, 测试, 打包, 发布等流程, 每次代码的修改, 都需要经过这些流程, 如果代码反复调试修改, 这个流程就需要反复进⾏, 就显得特别麻烦,而Maven 给我们提供了⼀套简单的命令来完成项⽬的构建。

- 管理依赖

Maven是⼀个项⽬管理⼯具, 通过pom.xml⽂件的配置获取jar包,⽽不⽤⼿动去添加jar包获取的jar包, 其实就是依赖。

依赖配置
如果使⽤Maven, 我们只需要在pom.xml中引⼊mysql-connector-java的依赖就可以了。

<dependencies><!--⾥⾯放置项⽬的依赖坐标, 可为多个 -->
</dependencies>

依赖传递
早期我们没有使⽤maven时, 向项⽬中添加依赖的jar包,需要把所有的jar包都复制到项⽬⼯程下.⽐如 A 依赖B, B依赖C, 那么 A项⽬引⼊B 的同时, 也需要引⼊C, 如果我们⼿动管理这个依赖, 这个过程就会⽐较⿇烦, 我们需要知道每个库都依赖哪些库, 以及这些依赖之间的版本是如何关联的,但使⽤maven的话, 就可以避免管理所需依赖的关系。我们只需要在pom⽂件中, 定义直接依赖就可以了, 由于maven的依赖具有传递性,所以会⾃动把所依赖的其他jar包也⼀起导⼊。
项⽬A 通过Maven 引⼊ Jar A 时, 会⾃动引⼊ Jar B 和Jar C.
Jar A 和项⽬B就是项⽬A的直接依赖.
Jar B, Jar C是间接依赖.

直接依赖:在当前项⽬中通过依赖配置建⽴的依赖关系
间接依赖:被依赖的资源如果依赖其他资源,当前项⽬间接依赖其他资源

依赖排除:指主动断开依赖的资源。(被排除的资源⽆需指定版本)
当前阶段我们需要依赖的库并不多, 但随着项⽬的越来越复杂, 库之间的依赖关系也会变得越来越复杂.
如上, 如果项⽬A不需要Jar B,也可以通过排除依赖的⽅式来实现.
eg.

<dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>6.0.6</version><!--排除依赖--><exclusions><exclusion><artifactId>spring-jcl</artifactId><groupId>org.springframework</groupId></exclusion></exclusions>
</dependency>

1.2Maven仓库

仓库:⽤于存储资源,管理各种jar包
Maven仓库的本质就是⼀个⽬录(⽂件夹),这个⽬录被⽤来存储开发中所有依赖(jar包, 插件等).

我们通过短短⼏⾏代码, 就把依赖jar包放在了项⽬⾥, 具体是如何做的呢?

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.30</version>
</dependency>

这个代码, 我们称之为 “坐标”, 也就是唯⼀的.
在Maven中, 根据 groupId、artifactId、version 的配置, 来唯⼀识别⼀个 jar 包, 缺⼀不可,当我们在pom⽂件中配置完依赖之后, 点击刷新, Maven会根据坐标的配置, 去仓库⾥寻找Jar包, 并把他下载下来, 添加到项⽬中. 这个Jar包下载的地⽅就称为仓库。

二、第一个SpringBoot项目

Spring Boot 项⽬有两个主要的⽬录:
• src/main/java: Java 源代码 。
•src/main/resources: 为静态资源或配置⽂件:
◦ /static:静态资源⽂件夹, ⽐如前期学的js, css,html等静态⽂件, 不需要服务器数据进⾏绑定的页面。
◦ /templates:模版资源⽂件夹, 主要存放动态模板⽂件,比如JSP,Freemarker, Thymeleaf等需 要服务器动态渲染数据的⽂件 。
• src/test/java: 测试代码源代码。

@RestController
@RequestMapping("/user")
public class UserController {@RequestMapping("/sayHi")public String sayHi(){return "hello,Spring";}
}

我们电脑中可能有多个项目,如果8080端口被占用了,程序会报错,我们可以尝试在application.properties中更改端口号。
在这里插入图片描述

在这里插入图片描述
此时9090端口号可以使用
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


总结

程序运行出现bug是常有的事,我们要学会看日志,一般读日志从下往上读,一段一段看,先看最后一段的首行,一般的错误原因是程序未启动,url路径不正确,未添加注解等,尝试自己解决问题。

最后,码字不易,如果觉得对你有帮助的话请点个赞吧,关注我,一起学习,一起进步!

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

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

相关文章

逆旅热闹如花盛放

热闹 未及十五&#xff0c;月亮的清辉已可穿透厚厚的云层铺撒人间。 几颗星星点缀着夜空&#xff0c;偶尔一架飞机闪烁着光芒。 很难得的晴夜。 近两个月以来的雨&#xff0c;像电影上的蒙太奇画帧&#xff0c;一幕接一幕&#xff0c;只是单调的灰色&#xff0c;困乏人心。 …

1994年美国人口普查数据 分类预测与集成学习

对于分类预测学习任务&#xff0c;从指定的数据源读取数据&#xff0c;对数据进行必要的处理&#xff0c;选取合适的特征&#xff0c;构造分类模型&#xff0c;确定一个人的年收入是否超过50K。 数据来源&#xff1a;1994年美国人口普查数据库。数据存放在data目录中&#xff0…

AD使用快捷键

1、如何实现元器件旋转45放置 在Preferences >> PCB Editor >> General中将Rotation Step&#xff08;旋转的步进值&#xff09;由90改为45&#xff0c;这样以后每次按空格键旋转器件时旋转角度为45。 2、显示网络、隐藏网络 N 3、对齐 2、设置DRC检查选项&#xf…

SAP-应付暂估核对

前言 本篇前面是应付暂估核对的核对逻辑&#xff0c;后面是核对过程中发现的问题&#xff0c;拿出来大家参考一下。 需求实现 一、采购订单收货暂估凭证 采购订单情况&#xff1a;采购订单号码5300000048 采购单价PBXX总价是含税单价&#xff0c;不含税单价是3,539.82 订单计…

数据可视化在智慧社区中的关键应用

数据可视化能够在智慧社区中发挥重要作用&#xff0c;通过直观和交互的方式将复杂的数据呈现出来&#xff0c;提升社区管理效率&#xff0c;优化居民生活体验&#xff0c;促进社区的可持续发展。在智慧社区中&#xff0c;数据可视化的应用涵盖了安全、环境、能源、交通和公共服…

CFA官网资料说明

进入到资料后台你就会发现&#xff0c;分了三个板块&#xff0c;分别是Study, Prepare和The Exam。 Study板块 主要提供备考重要资料&#xff0c;包括教材下载、自学习系统 Prepare板块 主要帮助考生准备考试&#xff0c;提供了一些小工具、包括机考软件指南 The exam板块…

秋招突击——第六弹——Java的SSN框架快速入门——MyBatisPlus

文章目录 引言正文入门案例整和MybatisPlus的相关内容 概述标准数据层开发分页查询DQL编程控制条件查询——NULL值处理 查询投影查询条件设定等于操作范围查询模糊查询分组查询 字段映射和表名映射 DML编程控制——增删改查相关操作添加操作id生成策略控制 删除操作多数据删除逻…

【物联网】物联网操作系统简介

目录 一、物联网操作系统概述 1.1内存占用 1.2 内存管理 二、物联网操作系统构成 三、物联网操作系统关键特性 3.1 调度方式 3.2 I/O操作方式 3.3 网络服务 3.3.1 TinyOS网络协议栈 3.3.2 LiteOS网络协议栈 一、物联网操作系统概述 物联网操作系统是支撑物联网大规模…

电商还存在错位竞争空间吗?

“上链接试了&#xff0c;十几分钟&#xff0c;成本5块的东西卖1块5了。”今年618前期&#xff0c;某个电商平台上线了自动跟价功能&#xff0c;有一个卖家尝试了一会儿之后赶紧关了。 又一个618&#xff0c;平台、商家、消费者们又迎来了一次狂欢。只是与往年不同的是&#x…

20240620每日后端---------Spring Boot中的 5 大设计模式最佳实践和示例 这些是我经常使用的设计模式并且非常喜欢

在本文中&#xff0c;我们将深入探讨五种基本设计模式&#xff0c;并探讨在 Spring Boot 项目中有效应用它们的最佳实践。每个模式都将附有一个实际示例来演示其实现。 单例模式 Singleton 模式确保一个类只有一个实例&#xff0c;并提供对它的全局访问点。这对于管理资源&am…

绝地求生PUBG联名补偿奖励来了 补偿奖励介绍详情解析

《绝地求生》(PUBG) 作为一款战术竞技型射击类沙盒游戏&#xff0c;从上线以来就深受玩家小伙伴们的喜爱&#xff0c;即便是没有玩过的小伙伴&#xff0c;对“吃 鸡”二字想必也是很耳熟的&#xff0c;这正是《绝地求生》(PUBG) 的别称。 在北京时间6月12日&#xff0c;由于绝…

通过注解@ConfigurationProperties和全局配置文件中配置数据绑定

1、创建创建出两个JavaBean&#xff1a;User和Address 2、在User类上加注解 Component // 标记为组件&#xff0c;放到spring的ioc容器里 ConfigurationProperties(prefix "user") // 和配置文件绑定&#xff0c;可以从配置文件中的注入数据 public class User {…

性能工具之 JMeter 常用组件介绍(七)

文章目录 一、后置处理器1、Regular Expression Extractor(正则表达式提取器)2、JSON Extractor(JSON表达式提取器)3、Regular Expression Extractor(正则表达式提取器) 二、小结 本文主要介绍JMeter主流后置处理器的功能 一、后置处理器 从上面可以看出后置处理可以插件挺多&a…

CASS界址点顺序重排

1、绘制一个宗地&#xff0c;如下&#xff1a; 2、注记界址点号&#xff0c;如下 3、【地籍】--【调整宗地内界址点顺序】&#xff0c;如下&#xff1a; 重排完成后&#xff0c;点击工具栏的【重】按钮&#xff0c;即可刷新标注。

C++的动态内存分配

使用new/delete操作符在堆中分配/释放内存//使用new操作符在堆中分配内存int* p1 = new int;*p1 = 2234;qDebug() << "数字是:" << *p1;//使用delete操作符在堆中释放内存delete p1;在分配内存的同时初始化//在分配内存的时初始化int* p2 = new int(100…

Mybatis Plus 详解 IService、BaseMapper、自动填充、分页查询功能

结构直接看目录 前言 MyBatis-Plus 是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 愿景 我们的愿景是成为 MyBatis 最好的搭档&#xff0c;就像 魂斗罗 中的 1P、2P&#xff0c;基友搭配&#xff0c;效…

电子期刊制作教程:跟着步骤轻松学会制作

随着数字时代的快速发展&#xff0c;电子期刊以其独特的便捷性和互动性&#xff0c;已经成为信息传播的重要载体。你是否也想掌握制作电子期刊的技能呢&#xff1f;今天&#xff0c;就让我来为你一步步解析电子期刊的制作过程&#xff0c;带你轻松学会制作属于自己的电子期刊。…

Zookeeper 一、Zookeeper简介

1.分布式系统定义及面临的问题 分布式系统是同时跨越多给物理主机&#xff0c;独立运行的多个软件所组成的系统。类比一下&#xff0c;分布式系统就是一群人一起干活。人多力量大&#xff0c;每个服务器的算力是有限的&#xff0c;但是通过分布式系统&#xff0c;由n个服务器组…

阵列波束形成与维纳滤波

本篇文章是博主在通信等领域学习时&#xff0c;用于个人学习、研究或者欣赏使用&#xff0c;并基于博主对通信等领域的一些理解而记录的学习摘录和笔记&#xff0c;若有不当和侵权之处&#xff0c;指出后将会立即改正&#xff0c;还望谅解。文章分类在通信领域笔记&#xff1a;…

算法设计与分析 实验4 动态规划法求扔鸡蛋问题

目录 一、实验目的 二、问题描述 三、实验要求 四、实验内容 动态规划法 算法描述 算法伪代码描述 算法复杂度分析 数据测试 二分优化的动态规划法 算法描述 二分优化&#xff1a; 算法伪代码 算法复杂度分析 数据测试 单调决策优化的动态规划法 算法描述 算…