SpringBoot保姆级教程(二)SpringBoot入门

news/2024/5/19 14:21:34/文章来源:https://blog.csdn.net/weixin_44593822/article/details/127040049

目录

一.通过官网搭建项目

二.通过IDEA脚手架搭建项目

三.SpringBoot项目结构

四.通过Maven搭建项目

五.编写Java代码


一.通过官网搭建项目

接下来我们搭建一个SpringBoot项目,并引入SpringMVC的功能,
首先我们可以通过官网搭建项目:
1
  1. 访问start.spring.io (这是搭建SpringBoot项目的官网)
  2. 2生成SpringBoot项目

SpringBoot版本说明:
  • SNAPSHOT:快照版,表示开发版本,随时可能修改;
  • M1Mn):M1milestone的缩写,也就是里程碑版本;
  • RC1RCn):RC1release candidates的缩写,也就是发布预览版;
  • Release:正式版,也可能没有任何后缀也表示正式版
一般都用里程碑版本和正式版。

SpringBoot引入的依赖是起步依赖,是一个功能引入一个依赖,而不是一个jar包引入一个依赖。 

点击上面的生成按钮之后,会自动下载一个官网帮我们搭建的SpringBoot项目的压缩包,解压之后,把解压的文件导入到idea中即可。

之前学习的时候,普通java程序打的是一个jar包,而web程序打得是一个war包,而这是一个Spring Web项目,但是为什么打得是一个jar包呢,请看下面的打包类型说明:

SpringBoot打包类型说明:
使用SpringMVC开发的是一个web项目,但由于在SpringBoot中直接嵌入了Tomcat
Web容器,所以所以SpringBoot用Java程序运行就可以了,在使用SpringBootWeb开发时不需要部署War文件,只需要打成Jar包即可,而war是给Tomcat使的。

二.通过IDEA脚手架搭建项目

IDEA中新建项目,项目类型为Spring Initializr,选择JDK版本和搭建网站后点击下一步。
其实这个方式底层也是连接的官网。
脚手架工具也会访问SpringBoot官网进行项目搭建,但SpringBoot官网有时访问速度较慢,我们也可以选择国内的镜像网站https://start.aliyun.com/搭建项目,阿里的脚手架镜像SpringBoot版本有些滞后,我还是选择了用官网的网址。
新建一个项目

三.SpringBoot项目结构

接下来我们分析SpringBoot的项目结构:
POM文件
1
1. SpringBoot项目必须继承spring-boot-starter-parent,即所有的SpringBoot项目都是spring-boot-starter-parent的子项目。
spring-boot-starter-parent中定义了常用配置、依赖、插件等信息,供SpringBoot项目继承使用。
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.4</version><relativePath/> <!-- lookup parent from repository -->
</parent>
2. SpringBoot项目中可以定义起步依赖,起步依赖不是以jar包为单位,而是以功能为单位。

这种引入方式使得不必再像之前一样引入那么多依赖,而是现在引入很少的东西即可。 

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
</dependencies>

3.spring-boot-maven-plugin插件是将项目打包成jar包的插件。

该插件打包后的SpringBoot项目无需依赖web容器,可以直接使用JDK运行。

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>

如果发生报错(spring-boot-maven-plugin呈红色),请参考这篇文章,我的是添加了个版本号就好了。

启动类
启动类的作用是启动SpringBoot项目,运行启动类的main方法即可启动SpringBoot项目。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class Springbootdemo2Application {public static void main(String[] args) {SpringApplication.run(Springbootdemo2Application.class, args);}}
配置文件
由于SpringBoot极大简化了Spring配置,所以只有一个application.properties配置文件,且Spring的自动配置功能使得大部分的配置都有默认配置,该文件的功能是覆盖默认配置信息,该
文件不写任何信息都可以启动项目。
启动后默认端口号为8080,我们可以覆盖该配置:
然后启动项目

四.通过Maven搭建项目

了解了SpringBoot结构后,我们也可以使用Maven手动搭建SpringBoot项目:
1
使用Maven创建普通JAVA项目,注意是普通的项目,idea2022版本如下创建,是不用选Archetype的!
 

在pom中添加项目的父工程、起步依赖、插件

    <!--父工程--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.4</version></parent><!--起步依赖--><dependencies><!--springmvc的起步依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.7.4</version></dependency></dependencies><!--插件--><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

编写启动类

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class SpringBootAPP {public static void main(String[] args) {SpringApplication.run(SpringBootAPP.class,args);}
}
编写配置文件application.properties(名字是固定的)
#日志格式
logging.pattern.console=%d{MM/dd HH:mm:ss.SSS} %clr(%-5level) --- [%-15thread] %cyan(%-50logger{50}):%msg%n
#端口号
server.port=8888

项目结构:

运行启动类主方法,启动项目

刷新一下maven,上方就会自动出现服务器

 点击绿色按钮运行即可。

五.编写Java代码

之前搭建的SpringBoot项目已经都整合了SpringMVC,我们编写一个控制器进行测试:
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
public class MyController {@RequestMapping("/hello")@ResponseBodypublic String hello(){System.out.println("hello springboot!");return "hello springboot!";}
}

在上面的项目结构下,在first下创建一个controller包,再在controller包下新建一个MyController类

com.first.controller
启动类在启动时会做注解扫描(@Controller@Service、 @Repository......),扫描位置为同包(在本例中是com.first)或者子包(在本例中是com.first.controller)下的注解,所以我们要在启动类同级或同级包下编写代码。

启动项目,访问http://localhost:8888/hello

 

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

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

相关文章

MYSQL介绍——数据库的增删改及常用函数

数据操作语言——INSERT语句 Insert 语句可以向数据库中插入数据&#xff0c;可以是一条数据&#xff0c;也可以是多条数据&#xff0c;它有以下语法形式&#xff1a; 下面给出一个插入语法的示例&#xff1a; INSERT INTO t_dept(deptno,dname,loc) VALUES(50,司法部,济南)…

(附源码)springboot篮球场地预约系统 毕业设计 345655

蓝球场地预约系统的设计与实现 摘 要 传统的场地预约需要客户亲自到场地所在位置或指定地点进行&#xff0c;由于预约记录多是认为完成&#xff0c;易于出现错误和漏洞&#xff0c;管理效率低&#xff0c;特别是场地繁杂时&#xff0c;传统的预约方式已经完全不能满足要求。 远…

一文读懂 Handler 消息处理机制(源码实战)

Android 异步消息处理机制解析 Android 中的异步消息处理主要由四个部分组成&#xff0c;Message、Handler、MessageQueue、Looper 但是当我们提到 Android 异步处理机制的时候&#xff0c;我们首先会想到 Handler&#xff0c;而大多数Android 初学者对于 Handler 的作用仅局…

医院患者挂号app(IDEA,SpringBoot,SSM,MySQL)+全套视频教程

【项目功能介绍】 本系统包含后台管理和前端app双端系统&#xff0c;后台管理的功能包含: 登录, 退出, 修改管理员信息(基本信息与头像),资源管理, 角色管理&#xff0c;资源权限分配, 数据字典管理&#xff0c;用户管理,医院管理, 医生管理; app端功能包含医生与患者二种角色…

CNN中添加HOG特征的pytorch实现——基于Alexnet

CNN中添加HOG特征的pytorch实现——基于Alexnet 几天前花了差不多两天时间基本实现了这个需求&#xff0c;经历了从一开始的毫无头绪&#xff0c;到最后对CNN模型 (加载数据集和数据流向) 和HOG特征有了更进一步的理解&#xff0c;实现需求之后又杂七杂八的看了一些相关的文章…

DolphinScheduler 进阶(资源中心)

文章目录内置参数引用依赖资源内置参数 DolphinScheduler 提供了一些时间相关的系统参数&#xff0c;方便定时调度使用。 1&#xff09;基础内置参数 变量名参数说明system.biz.date${system.biz.date}定时时间前一天&#xff0c;格式为 yyyyMMddsystem.biz.curdate${system…

资深腾讯架构师耗时2个月整理的Redis全套学习笔记,涵盖所有核心知识点

Redis 是一个开源、基于内存、使用 C 语言编写的 key-value 数据库&#xff0c;并提供了多种语言的 API。它的数据结构十分丰富&#xff0c;基础数据类型包括&#xff1a;string&#xff08;字符串&#xff09;、list&#xff08;列表&#xff0c;双向链表&#xff09;、hash&a…

18【命令设计模式】

文章目录十八、命令设计模式18.1 命令设计模式简介18.1.1 命令设计模式概述18.1.2 命令设计模式的UML类图18.2 命令设计模式的实现18.3 命令设计模式的优缺点十八、命令设计模式 18.1 命令设计模式简介 18.1.1 命令设计模式概述 命令设计模式&#xff08;Command Pattern&am…

元宇宙人均月入过万?智联报告大揭秘(附下载);华盛顿大学·线性代数进阶课程;电子书·深度神经网络应用(Keras);前沿论文 | ShowMeAI资讯日报

&#x1f440;日报合辑 | &#x1f4c6;电子月刊 | &#x1f514;公众号下载资料 | &#x1f369;韩信子 &#x1f4e2; 人均『月入过万』&#xff1f;元宇宙领域就业现状究竟如何 自2021年元宇宙元年之后&#xff0c;大批元宇宙相关岗位如雨后春笋涌现在市场上。从耳熟能详的…

罗克韦尔 Rockwell RSLogix 500 Crack

罗克韦尔自动化除了提供自动化基础硬件外&#xff0c;还提供大量的软件工具&#xff0c;并在其产品中包含了最新的Microsoft的32位Windows NT及ActiveXTM技术。这些软件为用户采用开放式的工业标准提供方便。另外借助DDE、ActiveX和ODBC兼容技术等&#xff0c;使现场数据能容易…

Chrome 浏览器的 ChromeOptions 参数介绍,selenium 动态渲染必看

背景 在使用 selenium 浏览器渲染技术&#xff0c;爬取网站信息时&#xff0c;默认情况下就是一个普通的纯净的chrome浏览器&#xff0c;而我们平时在使用浏览器时&#xff0c;经常就添加一些插件&#xff0c;扩展&#xff0c;代理之类的应用。相对应的&#xff0c;当我们用ch…

SpringBoot+SpringSecurity+JWT

声明&#xff1a; 该文章为b站博主“三更草堂”视频讲解文档。 视频链接&#xff1a; https://www.bilibili.com/video/BV1mm4y1X7Hc/?spm_id_from333.1007 文章目录SpringSecurity从入门到精通课程介绍0. 简介1. 快速入门1.1 准备工作1.2 引入SpringSecurity2. 认证2.1 登陆校…

Windows系统深度学习Anaconda、PyTorch软件安装教程

1.作者介绍 陈梦丹&#xff0c;女&#xff0c;西安工程大学电子信息学院&#xff0c;2022级研究生&#xff0c;张宏伟人工智能课题组 研究方向&#xff1a;机器视觉与人工智能 电子邮件&#xff1a;1169738496qq.com 安装思路&#xff1a; 根据电脑显卡选择cuda版本&#xf…

软件供应链中代码签名的重要性

你怎麼知道你的代碼是可信的&#xff1f; 在一個難以獲得信任的世界裡&#xff0c;這是一個重要的問題要問自己。 我們如何知道我們正在運行的應用程序、我們正在部署的容器或我們交付給客戶的代碼是真實的&#xff1f; 我們怎麼知道它沒有被篡改&#xff1f; 這一切都歸結為…

VUE3-实习笔记02

本节&#xff1a;ant design 3 的自定义校验规则 这里是获取数据&#xff0c;保存数据&#xff0c;有两个接口&#xff0c;测试邮箱的校验是非必要的&#xff0c;点击“发送测试邮件”才校验&#xff0c;所以规则是要另外加进去的&#xff0c;然后点击保存的时候&#xff0c;把…

python基本操作的作业

查看变量类型的Python内置函数是____。type () 返回单字符在unicode编码表中的值的函数为____。ord() Python中的布尔型只有两个值&#xff0c;分别为&#xff1a;____和____。True 和 False 执行下列语句后&#xff0c;从键盘输入10&#xff0c;程序的结果是&#xff1a; 1…

ActiveReportsJS 在 React 应用程序中添加和自定义查看器

谷歌搜破解版&#xff1a;ActiveReportsJS 3.2中文版是一个客户端报告解决方案&#xff0c;可用于各种不同的前端框架和库。从 vanilla JavaScript 到 NuxtJS&#xff0c;ARJS 在设计应用程序和使用其组件时非常灵活。在本文中&#xff0c;我们将讨论如何通过 Visual Studio Co…

Delphi 开发过程中简单的版本管理与回退

前言 很多时候&#xff0c;我们在进行代码编写或者窗体设计的时候&#xff0c;如果需要回退某些早前修改的内容&#xff0c;基本是使用CtrlZ做刚刚修改内容的回退处理&#xff0c;但如果某些修改已经过了一段时间我们就不能再这样退回&#xff0c;并且CtrlZ只能按顺序一个一个回…

用QT的modbus相关类编写ModbusTcp主站

目标程序运行界面&#xff0c; 1.新建Qwiget工程&#xff0c;工程文件如下&#xff0c; #------------------------------------------------- # # Project created by QtCreator 2022-09-28T14:53:02 # #------------------------------------------------- QT co…

MYSQL介绍——数据库查询

条件查询 很多时候&#xff0c;我们使用数据库时并不是关心表里所有的数据&#xff0c;而是一部分满足条件的数据&#xff0c;这类条件要用WHERE子 句来实现数据的筛选。 SELECT …… FROM …… WHERE 条件 [ AND | OR ] 条件 …… ;下面给出一个示例&#xff1a; SELECT * …