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

《JavaEE进阶》----3.<SpringBoot项目创建细节大全+打jar包运行>

本篇博客讲解了

创建Spring Boot项目的各种方法及创建细节、还有项目中目录和代码的简单介绍、启动项目、换端口号、Web服务器简介、HTTP状态码、以及用Maven打jar包运行。

什么是Spring

Spring是一个开源框架

现在暂时只需要了解这个。后续在SpringIOC&ID博客中会详细的讲解Spring。

Spring让开发Java工程项目变得更快、更简单、更安全。

它专注于开发工程时的速度、简化和效率。是世界上最受欢迎的Java框架

Spring在面试中其实说的就是Spring家族。

它包含Spring(Spring Framework)、Spring Boot、Spring MVC、Spring Cloud。等等许多框架。 

一、创建第一个SpringBoot程序

1.1不安装插件创建项目:

登录网站:start.spring.io

创建方法同下。

只是创建的这个项目需要下载,之后再用idea打开即可。比较麻烦

如果是社区版。需要

1.2安装插件创建项目:

首先需要安装插件才行。

不要直接点Install。因为那个要钱。而是点进去下载免费版本。

点进去找到免费版直接下载就可以了。放在idea安装目录下面,(也可以不放在这个安装目录下面)不要解压 

从这里点击设置,点击从硬盘安装插件,再选择这个压缩包。点击ok就可以了。重启IDEA

安装之后,名称会发生变化。变成spring initializr and Assistant。再点击 file > new project 如果左边出现 spring initializr。则说明插件安装完成

此时左边就有‌Spring Initializr

Spring Initializr是一个Web应用程序,专门用于生成Spring Boot项目的初始结构。

1.3接着创建项目

社区版

选择JDK版本、Java版本 

选择Spring Boot版本 

选择依赖 

在创建项目的时候我们也可以选择依赖,由于我们要进行web开发,因此要引入

Spring Web这个依赖

引入 Spring Web 依赖的主要原因是它提供了一种快速构建Web应用程序的方式,同时降低了组件之间的耦合度,提高了系统的可维护性、可测试性和可扩展性。 

特别是spring-boot-starter-web,是Spring Boot中用于构建Web应用程序的启动器,它自动包括了Spring的核心Web功能,如Spring MVC,使用spring-boot-starter-web可以让开发者更加专注于编写业务逻辑,而无需在依赖管理的迷宫中迷失方向。这种依赖的引入简化了Web应用的开发过程,使得开发者能够更高效地构建和部署Web应用‌。

检查版本

1.在点击文件->设置->构建、执行、部署->找到java编译器

2.文件->项目结构->项目

查看版本是否对应。

 

 

下载包 

若想修改Spring Boot版本

 

如果哪个包有安全漏洞,我们避免使用。不影响我们学习,到了公司,公司解决,不需要我们管。

检验项目创建是否成功

全部弄好之后启动项目,如果启动成功,说明项目创建成功

1.4目录和代码介绍 

1.5项目启动 

1.6第一个程序(hello,SpringBoot)

 如上,运行出错了,最终我换了个端口号就好了。

原因是8080端口号已经被占用。可能是之前我下载过tomcat。springboot又内置tomcat这导致端口号8080冲突

1.7换端口号

1.8web服务器

tomcat就是一个web服务器。

对http进行了封装

网址剖析( 为什么是127.0.0.1...)

我们来剖析一下网址http://127.0.0.1:8080/user/index

http://表示http协议。

127.0.0.1是一个特殊的IP,表示本地。这个代表你要访问的是哪个机器。

:8080是端口号,表示的是对应的某个进程。一个端口号只能对应一个进程,一个进程可以对应多个端口号。而这里的8080对应的进程一般是tomcat。此时就把请求发送给tomcat。

user/index是代表的资源。tomcat就是一个web服务器,此时tomcat通过这个就找到了我们所要访问的资源。

也就是发起请求到服务器,告诉服务器你要使用什么协议、访问哪个机器、中的哪个进程、及进程中的哪些资源。找到之后服务器响应结果返回给浏览器。

1.9HTTP状态码(对应错误解决方法)

2xx:表示访问成功

3xx:表示重定向

4xx:客户端发生错误

5xx:服务器发生错误


404:通常表示请求的url不存在

若发生这个错误我们可以

1.检查url是否正确

2.检查代码是否正确,如注解是否写错漏写等等问题。

405:表示请求方式错误 

1.若指定了为get请求,就不能再用post请求了

2.Spring支持get、post请求都支持

500:表示服务器端发生错误

就是代码错了。如参数错误。语法错误。我们看看后端日志,从下往上看,一段一段的看(段内从上往下)

也就是先看最后一段第一行。 

无法访问此网站:web服务器没有启动。确认一下端口号是否冲突。

二、打包并运行Jar包方式

2.1打包

安装了idea,可以直接通过点击运行按钮就可以运行我们的项目。

如果没有安装idea。我们也可以运行这个项目。

(springboot打jar包)

打一个jar包。这就需要我们通过maven来操作了。

2.2运行jar包 

通过

java -jar Jar包名字

命令来启动

端口号冲突

启动的日志和我们在idea启动的日志是一模一样的。

在linux启动需要我们打成jar包。通过java -jar这个命令。

如果打的jar包,通过java -jar启动不了,我们首先排除代码问题,要先在 idea可以启动

如果还不行,大多是环境的问题,是缓存的问题。

多clean几遍,再package。

如果还不行,那就重启一下idea。这是对外发布过程中可能遇到的问题。


总结

Spring Boot为快速开发Spring诞生,它具有:

  • Spring Boot提供了快速添加依赖的功能,更方便的集成框架。
  • 内置web服务器,无需配置TomCat等web服务器。可以一直运行部署。
  • 可使用注解和配置的方式进行开发,可以不用繁琐的xml
  • 对项目进行更多的监控指标,更好的了解项目的运行情况

Spring Boot可以使用IDEA或者网页创建,它的设计思想是约定大于配置

在类上加注解@SpringBootApplication就可以启动Spring Boot了

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 若依框架登录鉴权详解(动态路由)
  • 鸿蒙轻内核M核源码分析系列四 中断Hwi
  • Spring Boot 整合 Sentinel 实现流量控制
  • LabVIEW与Python联合图像处理
  • 2024 年高教社杯全国大学生数学建模竞赛题目【A/B/C/D/E题】完整思路
  • TensorFlow-keras介绍(一)
  • 速盾:便宜的高防 CDN 推荐,高防 CDN 能抵御 DDoS 吗?
  • 探索 JavaScript 中的 instanceof 关键字
  • 3. GIS后端工程师岗位职责、技术要求和常见面试题
  • C语言新手小白详细教程(8)ASCll编码和字符串
  • macos下的 sed命令安装与使用 gnu-sed
  • 华为 HCIP-Datacom H12-821 题库 (10)
  • 损失函数与反向传播
  • 网络编程(TCP+网络模型)
  • Intel 在人工智能领域
  • 《深入 React 技术栈》
  • 2017-08-04 前端日报
  • android 一些 utils
  • Apache的基本使用
  • eclipse的离线汉化
  • ES6核心特性
  • gcc介绍及安装
  • IDEA 插件开发入门教程
  • jdbc就是这么简单
  • TypeScript迭代器
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • uva 10370 Above Average
  • vue--为什么data属性必须是一个函数
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 从0实现一个tiny react(三)生命周期
  • 复习Javascript专题(四):js中的深浅拷贝
  • 前端面试之闭包
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • ​ubuntu下安装kvm虚拟机
  • ​十个常见的 Python 脚本 (详细介绍 + 代码举例)
  • # 利刃出鞘_Tomcat 核心原理解析(二)
  • (¥1011)-(一千零一拾一元整)输出
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (2024)docker-compose实战 (9)部署多项目环境(LAMP+react+vue+redis+mysql+nginx)
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (差分)胡桃爱原石
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (一)认识微服务
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .NET 表达式计算:Expression Evaluator
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .Net面试题4
  • @require_PUTNameError: name ‘require_PUT‘ is not defined 解决方法
  • @ResponseBody
  • [ Linux 长征路第二篇] 基本指令head,tail,date,cal,find,grep,zip,tar,bc,unname
  • [2016.7.Test1] T1 三进制异或
  • [2023年]-hadoop面试真题(一)