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

【SSM-Day2】第一个SpringBoot项目

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

【SSM-Day2】第一个SpringBoot项目

  • 框架->Spring家族框架
  • 快速上手Spring Boot
    • Spring Boot的作用
    • 通过idea创建Spring Boot项目
    • 项目目录
    • 项目启动
    • web程序:hello world
    • 再谈对Sping Boot的理解
  • 项目的JDK版本取决于通过什么运行项目

框架->Spring家族框架

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

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

快速上手Spring Boot

Spring Boot的作用

在依赖spring家族框架开发项目的时候,Spring Boot的作用是简化spring程序开发。接下来一边用它一边体会它究竟是什么吧!好像有点听君一席话如听一席话的感觉…就是说先用再总结喽~~

通过idea创建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项目。
在这里插入图片描述联网状态下(ps:下图页面来自于sping官网)进入下面这个页面:
在这里插入图片描述

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

项目创建过程中,我们引入了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项⽬被成功创建。

还可以通过其他方法创建SpringBoot项⽬,比如通过Spring官方创建、阿里云创建、不基于任何页面,插件进行创建(创建空的maven 项目,自己写依赖,启动类,目录)、利用已存在的SpringBoot项⽬,cv后修改项目名字,内容等。

项目目录

在这里插入图片描述
读别人的代码,只需要以上目录中的三个文件: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的理解

目前为止,在一个网站项目中,Sping Boot框架都帮我们做了什么->是如何简化spring程序开发的?

  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文件中:
在这里插入图片描述

相关文章:

【SSM-Day2】第一个SpringBoot项目

运行本篇中的代码:idea专业版或者idea社区版本(2021.1~2022.1.4)->这个版本主要是匹配插件spring boot Helper的免费版(衰) 【SSM-Day2】第一个SpringBoot项目 框架->Spring家族框架快速上手Spring BootSpring Boot的作用通过idea创建S…...

【PyTorch】张量操作与线性回归

张量的操作 Tensor Operation 拼接与切分 1.1 torch.cat() torch.cat(tensors, dim0, outNone)功能:将张量按维度dim进行拼接 tensors:张量序列dim:要拼接的维度 1.2 torch.stacok() torch.stack(tensors, dim0, outNone)功能&#xf…...

情感类智能体——你的微信女神

智能体名称:你的微信女神 链接:文心智能体平台AgentBuilder | 想象即现实 (baidu.com)https://agents.baidu.com/agent/preview/RulbsUjIGj4wsinydlBH7AR3NQKFungt 简介 “你的微信女神”是一个直率的智能体,她用犀利而真实的言辞帮助用户…...

基于SpringBoot+Vue+MySQL的养老院管理系统

系统展示 管理员界面 家属界面 系统背景 随着全球人口老龄化的加速,养老院管理面临着前所未有的挑战。传统管理方式存在信息不透明、效率低下、资源分配不均等问题,难以满足日益增长的养老服务需求。因此,开发一套智能化、高效的养老院管理系…...

大数据Flink(一百二十二):阿里云Flink MySQL连接器介绍

文章目录 阿里云Flink MySQL连接器介绍 一、特色功能 二、​​​​​​​语法结构 三、​​​​​​​​​​​​​​WITH参数 阿里云Flink MySQL连接器介绍 阿里云提供了MySQL连接器,其作为源表时,扮演的就是flink cdc的角色。 一、特色功能 MySQ…...

FutureTask源码分析

Thread类的run方法返回值类型是void,因此我们无法直接通过Thread类获取线程执行结果。如果要获取线程执行结果就需要使用FutureTask。用法如下: class CallableImpl implements Callable{Overridepublic Object call() throws Exception {//do somethin…...

Highcharts甘特图基本用法(highcharts-gantt.js)

参考官方文档: https://www.highcharts.com/docs/gantt/getting-started-gantt https://www.highcharts.com/demo/gantt/project-management https://www.hcharts.cn/demo/gantt 链接在下面按需引入 https://code.highcharts.com/gantt/highcharts-gantt.js htt…...

【Linux庖丁解牛】—Linux基本指令(上)!

🌈个人主页:秋风起,再归来~🔥系列专栏: Linux庖丁解牛 🔖克心守己,律己则安 目录 1、 pwd命令 2、ls 指令 3、cd 指令 4、Linux下的根目录 5、touch指令 6、 stat指令 7、mkdi…...

node.js 中的进程和线程工作原理

本文所有的代码均基于 node.js 14 LTS 版本分析 概念 进程是对正在运行中的程序的一个抽象,是系统进行资源分配和调度的基本单位,操作系统的其他所有内容都是围绕着进程展开的 线程是操作系统能够进行运算调度的最小单位,其是进程中的一个执…...

Qt/C++ TCP调试助手V1.1 新增图像传输与接收功能(附发布版下载链接)

发布版本链接 通过百度网盘分享的文件:TCP调试助手V1.zip(含客户端与服务器) 链接:https://pan.baidu.com/s/14LTRPChPhYdwp_s6KeyBiA?pwdcedu 提取码:cedu 基于Qt/C实现了一款功能丰富的TCP服务器与客户端调试助手…...

DNS解析流程

DNS解析流程: 浏览器DNS缓存: 当我们在浏览器中访问某个域名时,浏览器首先会检查自己内部的DNS缓存,看是否有该域名的对应IP地址。如果有,直接使用缓存中的IP地址,跳过后续步骤。 本地系统DNS缓存&#xf…...

[PTA]7-1 藏头诗

[PTA]7-1 藏头诗 本题要求编写一个解密藏头诗的程序。 注:在 2022 年 7 月 14 日 16 点 50 分以后,该题数据修改为 UTF-8 编码。 输入格式: 输入为一首中文藏头诗,一共四句,每句一行。注意:一个汉字占三…...

每日OJ题_牛客_WY22 Fibonacci数列(斐波那契)

目录 牛客_WY22 Fibonacci数列(斐波那契) 解析代码 牛客_WY22 Fibonacci数列(斐波那契) Fibonacci数列_牛客题霸_牛客网 解析代码 求斐波那契数列的过程中,判断⼀下:何时 n 会在两个 fib 数之间。 #in…...

SQL 查询语句汇总

在软件开发和数据分析中,SQL(结构化查询语言)是与数据库交互的重要工具。为了更好地理解 SQL 查询语句的使用,本文将设计一个简单的数据库,包括几张表,并通过这些表展示各种 SQL 查询的应用。 一、背景信息…...

封装一个语言识别文字的方法

语音识别 需求: 参考官方文档,整合语音识别apicallback 的写法改为 Promise 的版本 在startRecord中: 参考文档实例化-开启转换将录制的内容传递给录音识别回调函数中的 Log,改为 Logger 在closeRecord: 结束识别…...

解决 iOS App Tracking Transparency 权限问题

解决 iOS App Tracking Transparency 权限问题 在 iOS 14 及更高版本中,Apple 引入了 App Tracking Transparency (ATT) 框架,要求应用在跟踪用户之前必须获得用户的明确许可。这通常涉及到访问用户的广告标识符(IDFA)。如果没有…...

ClickHouse 的底层架构和原理

ClickHouse 是一个用于实时分析和处理大规模数据的列式数据库,其设计目标是高效地处理海量数据的查询需求。它特别适合 OLAP(Online Analytical Processing)场景,能够在不依赖复杂的索引结构的情况下,实现极快的查询速…...

rtmp推流

获取摄像头名称 打开命令行工具,运行以下命令以列出所有可用的视频设备: ffmpeg -f dshow -list_devices true -i dummy查找输出中的“Video devices”部分,记录下你的摄像头名称。 构建推流命令 ffmpeg -f dshow -i video"摄像头名称…...

【数据库】死锁排查方式

定位 查是否锁表 select username,lockwait,status,machine,program from v$session where sid in (select session_id from v$locked_object); 查锁表sql select sql_text from v$sql where hash_value in (select sql_hash_value from v$session where sid in (select s…...

去耦合的一些建议

尽量少用全局变量,以减少状态共享和潜在的副作用。 模块化设计:将代码分成小模块,每个模块独立实现特定功能,减少模块之间的相互依赖。 封装:将数据和操作封装在类中,控制对内部状态的访问,避…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...

ESP32读取DHT11温湿度数据

芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

关于easyexcel动态下拉选问题处理

前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...