【SSM-Day2】创建SpringBoot项目

news2024/11/18 15:33:57

运行本篇中的代码:idea专业版或者idea社区版本(2021.1~2022.1.4)->这个版本主要是匹配插件spring boot Helper的免费版(衰)

【SSM-Day2】创建SpringBoot项目

  • 框架->Spring家族框架
  • 快速上手Spring Boot
    • 📢用idea插件创建Spring Boot项目
      • ⭐️第一步:安装插件(已有->忽略)
      • ⭐️第二步:创建Spring Boot项目
      • ⭐️第三步:用maven导入第三方依赖
    • 📢项目目录
    • 📢项目启动
    • 📢web程序:hello world
    • 📢Sping Boot是什么
  • 项目的JDK版本取决于通过什么运行项目

框架->Spring家族框架

什么是框架?一些大佬把一些复杂的功能写好以后,进行封装,并且提供相应API。个人或者团队在进行开发工作的时候,只需要调用对应API就可以在自己的项目中实现对应功能。大佬完成的框架通常简单又高效,利用框架进行开发能极大提高开发效率。

一个jar包可以叫库,多个jar组合到一起可以称为模块,多个模块组合成一个更规范的体系,就可以成为框架。

在开发一个网站项目的时候,特别是BS架构下的项目,常用的框架是Spring家族框架(可简称Spring)
在这里插入图片描述
Spring是一类 快,简单,安全的Java框架。进入Spring官方网站https://spring.io/后,可以见到Spring家族框架里有很多的框架成员,例如Spring Framework,Spring BootSpring MVCSpringCloud等。
在这里插入图片描述

快速上手Spring Boot

📢用idea插件创建Spring Boot项目

创建SpringBoot项⽬的方式很多,比如

  1. 通过Spring官方创建、
  2. 阿里云创建、
  3. 不基于任何页面和插件,直接创建空的maven 项目,但要自己写依赖,启动类、目录、
  4. 复制已存在的SpringBoot项⽬,然后粘贴修改后变成新的项目。
  5. 通过idea插件spring boot Helper创建

接下来up我记录的是通过插件spring boot Helper创建Spring Boot项目。

⭐️第一步:安装插件(已有->忽略)

社区版idea在创建Spring Boot项目前要先安装插件spring boot Helper,专业版已经集成了这个插件,不用安装。

插件spring boot Helper目前在官网已经找不到免费版本了,我的解决办法是问同学要了份免费版本的压缩包存到本地后然后直接安装了,这个压缩包是免费的,所以它的缺点是只和2021.1~2022.1.4版的idea兼容(衰)。

安装,一个下载在本地的插件,步骤如下:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
(ps:settings弹窗的ok别忘了点)。
最后重启idea,查看已安装插件,插件的名字从spring boot Helper变成了SpringInitializrandAssistant,

在这里插入图片描述
(ps:不要点updata,要不然免费版就变成收费版了,收费版只能用30天)

打开新建项目页面,能看到spring initializr选项,说明这个插件就安装成功了。
在这里插入图片描述

⭐️第二步:创建Spring Boot项目

接下来就借助插件,开始创建Spring Boot项目。
在这里插入图片描述联网状态下(ps:下图页面来自于sping官网)进入下面这个页面:
在这里插入图片描述

点击next后进入下面页面:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
点击Create,一个SpringBoot项⽬的创建进行至80%。

⭐️第三步:用maven导入第三方依赖

项目创建过程中,我们引入了spring依赖。但是在项目创建之初,本地并没有springboot的本地仓库,所以项目创建后还需要用maven导入依赖:

点击页面右下角load maven project,作为maven项目去加载这个项目,maven就会自动生成一些配置项,然后自动去中央仓库下载依赖。
在这里插入图片描述

以上操作时,一些可能会遇到的小问题:

  1. 如果右下角没有load maven project,
    先检查项目页面最右侧栏是否有maven,有,直接点击刷新加载项目。
    没有,鼠标右键->Add Framework Support->选择maven->点击ok。
  1. 在用maven导依赖的过程中,社区版的idea可能会存在以下两个bug:
    在这里插入图片描述中央仓库中有的是下面这个依赖,即删掉.RELEASE,导入如下依赖。
    在这里插入图片描述>3. 还有一个bug是:
    在这里插入图片描述由于这个依赖目前用不上,如果一直下载不下来,可直接把这段依赖坐标删除。删除之后点击刷新。

至此,默认的依赖导入完成,项目没有报错,一个SpringBoot项⽬被成功创建。

📢项目目录

在这里插入图片描述
读别人的代码,只需要以上目录中的三个文件:src;.gitignore;pom.xml。

📢项目启动

在这里插入图片描述在这里插入图片描述在这里插入图片描述

📢web程序:hello world

web程序是基于http协议进行交互的。在web程序中,idea中的Spring boot项目是服务器端,浏览器是客户端 。 -> 通过在浏览器输入地址,就能访问到idea中的项目。

web服务器(又称WWW服务器)就是对http协议进行封装,程序员不需要直接对协议进行操作->程序员不需要自己写代码去解析http规则,显然这使得web开发更加便捷。常见的web服务器有Apache,Nginx,IIS,Tomcat,Jboss等。

Spring boot集成了tomcat服务器。tomcat的默认端口号是8080,所以我们访问Spring boot程序时的端口号也是8080。
在这里插入图片描述

例如在下面这个web程序中:
在这里插入图片描述

浏览器端:输⼊⽹址:http://127.0.0.1:8080/hello

  • 通过IP地址127.0.0.1定位到⽹络上的⼀台计机,127.0.0.1就是本机
  • 通过端⼝号8080找到计算机上对应的进程,也就是在本地计算机中找到正在运⾏的8080端⼝的程序
  • /hello是请求资源位置
    • 资源:对计算机⽽⾔资源就是数据
    • web资源:通过⽹络可以访问到的资源(通常是指存放在服务器上的数据)

http://127.0.0.1:8080/hello,就是向本地计算机中的8080端⼝程序,获取资源位置是/hello的数据;然后8080端⼝程序在服务器找/hello位置的资源数据后,再发给浏览器。

服务端:接收到浏览器发送的信息(如:/hello),在服务器上找到/hello的资源,把资源发送给浏览器。

下面总结一些 浏览器访问服务器失败 的原因:

  1. 服务器根本没启动:
    在这里插入图片描述
  2. 服务器启动了,但还是没有访问到资源,此时可以根据页面反馈的http状态码寻找出错原因。
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

📢Sping Boot是什么

Spring家族框架是为了简化JavaWeb开发的,Spring Boot框架是为了简化Spring程序开发的。如果把开发一个Spring程序比作盖房子,那么SpringBoot相当于一个脚手架。脚手架的作用是方便砌筑砖墙,浇筑混凝⼟、墙⾯抹灰,装饰和粉刷的。
在这里插入图片描述用脚手架可以更快速的盖房子,但是不用脚手架也可以盖房子。同理,不用SpringBoot直接进行Spring程序开发也可以。

从上面使用Spring Boot创建网站项目的时候,可见以下几点:

  1. SpringBoot提供了启动添加依赖的功能,可以快速集成框架
    在这里插入图片描述

  2. SpringBoot内置web服务器,⽆需配置Tomcat等Web服务器,可直接运⾏和部署程序。
    在这里插入图片描述

  3. SpringBoot的设计思想是约定大于配置,使⽤注解和配置的⽅式进⾏开发,比如类上标注注解@SpringBootApplication就可以启动SpringBoot项⽬了。
    在这里插入图片描述

项目的JDK版本取决于通过什么运行项目

通过cmd运行项目,项目的jdk版本需要能被本机设置的环境变量兼容;通过idea运行项目,项目的jdk版本,需要能被idea中针对该项目的jdk版本兼容。

idea中针对该项目的jdk版本:
file->project structure
在这里插入图片描述
在这里插入图片描述file->settings
在这里插入图片描述pom.xml文件中:
在这里插入图片描述


SpringBoot框架终于用上了,下一波操作再见!
在这里插入图片描述

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

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

相关文章

python文件读写知识简记

简单记录一下python文件读写相关知识 一、打开文件 python使用open函数打开文件,函数原型如下 open(file, moder, buffering-1, encodingNone, errorsNone, newline None, closefdTrue, openerNone) file 文件地址 mode 文件打开模式,可设定为如下的…

harmonyOS ArkTS最新跳转Navigation

文章目录 取消标题栏初始页面(load)设置为竖屏 自定义标题Tabs&TabContentTabs通过divider实现了分割线各种属性 图片下载 官方文档 Entry Component struct Index {State message: string Hello WorldState djs:number 5build() {Column(){Navigation(){}.title("g…

一文详解GB28181、RTSP、RTMP

GB28181 GB28181 即 GB/T28181—2016《公共安全视频监控联网系统信息传输、交换、控制技术要求》。它是公安部提出的公共安全行业标准,在视频监控领域具有重要地位。 主要目的和应用场景: 目的:解决不同厂家的视频监控设备执行各自标准&…

9.24 C++ 常成员,运算符重载

//my_string.cpp #include "my_string.h" #include <iostream> #include <cstring>using namespace std;My_string::My_string():size(15){this->ptr new char[size];this->ptr[0] \0; //表示串为空串this->len 0;}//有参构造My_…

业务数据批量插入数据库实践

业务数据如何存储一直以来都是项目开发中的一个比较重要的话题。我们要从资源的利用率&#xff0c;业务场景和技术实现多个方面考虑存储的问题。“抛开业务谈技术就是耍流氓”&#xff0c;所有技术架构都要站在实际的业务场景中分析。比如个人端的产品&#xff0c;这种就属于读…

代码随想录算法训练营Day7 | 454.四数相加Ⅱ、383.赎金信、15.三数之和、18.四数之和

454.四数相加Ⅱ 题目 454. 四数相加 II - 力扣&#xff08;LeetCode&#xff09; 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < nnums1[i] nums…

weblogic中间件漏洞复现

后台弱口令getshell 1.开启环境 cd vulhub-master/weblogic/weak_password docker-compose up -d docker ps 2.f访问靶场 访问/console/login/LoginForm.jsp这个目录进行登录&#xff0c; 默认账号密码&#xff1a;weblogic/Oracle123 需要注意的是单个账号进行登录时&…

C++_CH18_构造函数与析构函数

C_CH18_构造函数与析构函数 1 类的默认成员函数 在编写类的时候&#xff0c;C编译器会默认生成6个默认的函数&#xff0c;但是不显示出来&#xff1a; 需要关注以下两个方面: 第一:我们不写时&#xff0c;编译器默认生成的函数行为是什么&#xff0c;是否满足我们的需求。 …

LabVIEW界面输入值设为默认值

在LabVIEW中&#xff0c;将前面板上所有控件的当前输入值设为默认值&#xff0c;可以通过以下步骤实现&#xff1a; 使用控件属性节点&#xff1a;你可以创建一个属性节点来获取所有控件的引用。 右键点击控件&#xff0c;选择“创建” > “属性节点”。 设置属性节点为“D…

实践出真知!8个案例速通栅格系统

在现代设计中&#xff0c;栅格系统作为一种重要的布局方案&#xff0c;能够有效提升设计的秩序感。对于 UI 设计领域&#xff0c;栅格系统也广泛用于跨屏幕的响应式设计&#xff0c;帮助设计师打造更好的多端体验。本文将简要介绍栅格系统的基本概念和搭建方法&#xff0c;并提…

什么是unix中的fork函数?

一、前言 在本专栏之前的文档中已经介绍过unix进程环境相关的概念了&#xff0c;本文将开始介绍unix中一个进程如何创建出新进程&#xff0c;主要是通过fork函数来实现此功能。本文将包含如下内容&#xff1a; 1.fork函数简介 2.父进程与子进程的特征 3.如何使用fork创建新进程…

依赖不对应导致java文件不能正常显示

项目中若出现非正常显示的java文件&#xff0c;检查下是否依赖版本不对应。&#xff08;前提必须是maven项目&#xff09;

网络原理(4)——网络层(IP)、数据链路层

1. IP 协议 基本概念&#xff1a; 主机&#xff1a;配有 IP 地址&#xff0c;但是不进行路由控制的设备 路由器&#xff1a;即配有 IP 地址&#xff0c;又能进行路由控制 节点&#xff1a;主机和路由器的统称 IP 协议报头格式 1) 4 位版本&#xff1a;实际上只有两个取值&…

通义灵码AI 程序员正式发布:写代码谁还动手啊

虽然见不到面 但你已深潜我心 前几天&#xff0c;在 2024 年的杭州云栖大会上&#xff0c;随着通义大模型能力的全面提升&#xff0c;阿里云通义灵码这位中国的首位 AI 程序员也迎来重大的升级。 一年前这位 AI 程序员还只能完成基础的编程任务&#xff0c;到现在可以做到几…

Leetcode 543. 124. 二叉树的直径 树形dp C++实现

问题&#xff1a;Leetcode 543. 二叉树的直径&#xff08;边权型&#xff09; 给你一棵二叉树的根节点&#xff0c;返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。两节点之间路径的 长度 由它们之…

探索未来:MultiOn,AI的下一个革命

文章目录 探索未来&#xff1a;MultiOn&#xff0c;AI的下一个革命背景&#xff1a;为什么选择MultiOn&#xff1f;MultiOn是什么&#xff1f;如何安装MultiOn&#xff1f;简单的库函数使用方法场景应用常见问题及解决方案总结 探索未来&#xff1a;MultiOn&#xff0c;AI的下一…

图表示学习中的Transformer:Graphormer的突破

人工智能咨询培训老师叶梓 转载标明出处 在自然语言处理和计算机视觉等领域&#xff0c;Transformer架构已经成为主导选择。然而&#xff0c;在图级别的预测任务中&#xff0c;它的表现并不如主流的图神经网络&#xff08;GNN&#xff09;变体。这一现象引发了一个思考&#x…

指针变量的自增、自减运算

指针变量的自增、自减运算相比较于普通变量的自增、自减运算又什么区别呢&#xff1f; 让我们先来复习一下普通变量的自增、自减运算 int main() {int i; //定义一个整型变量printf("请输入一个数字&#xff1a;\n");scanf("%d&qu…

JetBrains系列产品无限重置免费试用方法

JetBrains系列产品无限重置免费试用方法 写在前面安装插件市场安装插件 写在前面 支持的产品&#xff1a; IntelliJ IDEA AppCode CLion DataGrip GoLand PhpStorm PyCharm Rider RubyMine WebStorm为了保证无限重置免费试用方法的稳定性&#xff0c;推荐下载安装2021.2.2及其…

QT Creator cmake 自定义项目结构, 编译输出目录指定

1. 目的 将不同的源文件放到不同的目录下进行管理&#xff0c; 如下&#xff1a; build: 编译输出目录 include: 头文件目录 rsources: 资源文件目录 src: cpp文件目录 2. 创建完cmake工程后修改CMakeLists.txt 配置 注 &#xff1a; 这里头文件目录是include, 所以在includ…