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

SpringBoot 项目创建与运行

一、Spring Boot

1、什么是Spring Boot?为什么要学 Spring Boot

Spring 的诞生是为了简化 Java 程序的开发的,而 Spring Boot 的诞生是为了简化 Spring 程序开发的。
Spring Boot 翻译一下就是 Spring 脚手架

盖房子的这个架子就是脚手架,脚手架的作用是砌筑砖墙,浇筑混凝土、方便墙面抹灰,装饰和粉刷的,简单来说,就是使用脚手架可以更快速的盖房子

而 Spring Boot 就是 Spring 框架的脚手架,它就是为了快速开发 Spring 框架而诞生的

每次技术的诞生和改进相比于之前的效率会有一个质的提升,而 Spring Boot 相比于Spring 也是如此


2、Spring Boot 优点

快速集成框架,Spring Boot 提供了启动添加依赖的功能,用于秒级集成各种框架。
内置运行容器,无需配置 Tomcat 等 Web 容器,直接运行和部署程序。

快速部署项目,无需外部容器即可启动并运行项目。
可以完全抛弃繁琐的 XML,使用注解和配置的方式进行开发。
⽀持更多的监控的指标,可以更好的了解项目的运行情况


三、Spring Boot 项目创建

1、使用 Idea 创建

Idea 社区版(其他版本也同样适用),先要安装 Spring Assistant(Spring 助手)插件才能创建 Spring Boot 项目,如下图所示

如果没有找到,版本不兼容。版本太老或者太新都会出现这种情况

解决方案:1、更换idea到合适版本;2、使用其他功能类似的插件

在这里插入图片描述

安装好之后,就有了 Spring Assistant 选项:

在这里插入图片描述

创建 Spring Boot 项目:

在这里插入图片描述

第一次打开 Spring Boot 项目需要加载很久,因为当前 Spring Boot 框架并没有在自己的本地仓库

在这里插入图片描述

在这里插入图片描述

运行:

在这里插入图片描述

为了加速 Spring Boot 项目的下载,在打开项目之前,请先确认自己的 Maven 已经配置为国内源:

在这里插入图片描述

使用国内数据源创建Spring Boot项目:

将 start.spring.io 修改

在这里插入图片描述


2、网页版创建(了解)

不使用 Idea 也可以创建 Spring Boot 项目,我们可以使用 Spring 官方提供的网页版来创建 SpringBoot 项目

1). 打开 spring boot 创建的网站——https://start.spring.io

2). 配置并创建 spring boot 项目

在这里插入图片描述

3). 点击生成按钮,生成一个 Spring Boot 的 zip 包

在这里插入图片描述

在这里插入图片描述

4). 解压 zip 项目目录,并使用 idea 打开项目

在这里插入图片描述


3、删除 spring boot 中的无效文件

在这里插入图片描述

4、项目目录介绍和运行

新建的 Spring Boot 项目目录如下:

Spring Boot 项目有两个主要的目录:

  • src/main/java 为 Java 源代码。
  • src/main/resources 为静态资源或配置文件:
    • static:静态资源文件夹;
    • templates:模版资源文件夹

在这里插入图片描述


4.1、输出 Hello world

我们学习 JavaEE 就是用来实现 Web 项目或接⼝的,而之前是 Spring 其实是一个普通 Java 项目,没
办法直接和浏览器进行互动,所以接下来我们要用 Spring Boot 来实现和浏览器及用户的交互

创建的项目包路径下创建 UserController 文件,实现代码如下:

@Controller
public class UserController {@ResponseBody // 返回一个非静态页面的数据@RequestMapping("/sayhi") // 设置路由地址,一律小写public String sayHi() {return "hello, word";}
}

重新启动 DemoApplication,访问 http://localhost:8080/sayhi最终效果如下:

在这里插入图片描述


5、约定大于配置

——包路径错误:

我们尝试将 controller 移动到其他包下

运行我们的项目,发现程序报错了,如下图所示:

在这里插入图片描述

这说明 Spring Boot 项目没有将对象注入到容器中

以上情况反应了 Spring Boot 项目的另一个特点:约定大于配置
对比 Spring 的项目我们也可以看到这一特点,比如在 Spring 中也是要配置 Bean 的扫描路径的,而Spring Boot 则不需要,Spring 配置如下

在这里插入图片描述

结论 1: 需要将对象托管到 SpringBoot(Spring) 的对象,必须要放在 SpringBoot 启动类的根路径或者是子路径中,否则不能被框架识别
结论 2: SpringBoot 配置是比较少,但是Spring Boot 的设计思想是:约定大于配置

在这里插入图片描述


6、总结

Spring Boot 是为了快速开发 Spring 而诞生的,Spring Boot 具备:

快速集成框架,Spring Boot 提供了启动添加依赖的功能,用于秒级集成各种框架。

  • 内置运行容器,无需配置 Tomcat 等 Web 容器,直接运行和部署程序。
  • 快速部署项目,无需外部容器即可启动并运行项目。
  • 可以完全抛弃繁琐的 XML,使用注解和配置的方式进行开发。
  • ⽀持更多的监控的指标,可以更好的了解项目的运行情况等特点

Spring Boot 可使用 Idea 或网页创建,它的设计思想是约定大于配置,类上标注
@SpringBootApplication 就可以启动 Spring Boot 项目了


相关文章:

SpringBoot 项目创建与运行

一、Spring Boot 1、什么是Spring Boot?为什么要学 Spring Boot Spring 的诞生是为了简化 Java 程序的开发的,而 Spring Boot 的诞生是为了简化 Spring 程序开发的。 Spring Boot 翻译一下就是 Spring 脚手架 盖房子的这个架子就是脚手架,…...

FOHEART H1数据手套:连接虚拟与现实,塑造智能交互新未来

在全新交互时代背景中,数据手套无疑是一种重要的科技产物。它不仅彻底改变了我们与虚拟世界的互动方式,更为我们提供了一种全新、更为直观的交互形式。 FOHEART H1数据手套结合了虚拟现实、手势识别等高新技术,用先进的传感技术和精准的数据…...

MyBatis学习笔记3

日志 1.日志工厂 如果一个数据库的操作,出现了异常,我们需要排错。日志就是最好的工具。 日志工厂:SLF4JLOG4J(掌握)LOG4J2JDK_LOGGINGCOMMONS_LOGGINGSTDOUT_LOGGING(掌握)NO_LOGGING 2.分页 减少数据…...

ES6学习-Symbol

Symbol 数据类型Symbol,表示独一无二的值。 对象的属性名可有两种类型,一种是原来的字符串,另一种是新增的 Symbol 类型 可以保证不与其他属性名产生冲突。 let s1 Symbol() let s2 Symbol() console.log(s1, s2, s1 s2)//Symbol() Sy…...

【Redis】使用Docker镜像配置集群时的Operation timed out问题

不知道有没有小伙伴跟我一样是使用的Docker镜像进行Redis集群案例模拟的(三台虚拟机确实带不动 ),然后我遇到了一个问题:Could not connect to Redis at 172.17.0.2:6379: Operation timed out 172.17.0.2是我其中一个Redis实例的…...

Java 生产初学常用注解

目录 0. 基础语法逻辑运算符继承抛出异常获取数据方式泛型 1. 接收前端数据(controller)mybatis1. QueryWrapper获取和赋值 2. service 层注解 3. Dao 层(与数据库交互)3.1 mybatis-plus中BaseMapper 4. ELK框架es配置sql参数logs…...

mousedown拖拽功能(vue3+ts)

因为项目有rem适配,使用第三方插件无法处理适配问题,所有只能自己写拖拽功能了 拖拽一般都会想到按下,移动,放开,但是本人亲测,就在div绑定一个按下事件就行了(在事件里面写另外两个事件&#x…...

【论文阅读】基于深度学习的时序异常检测——TransAD

系列文章链接 数据基础:多维时序数据集简介 论文一:2022 Anomaly Transformer:异常分数预测 论文二:2022 TransAD:异常分数预测 论文链接:TransAD.pdf 代码库链接:https://github.com/imperial…...

NLPCC 出版部分相关源码记录

目录 Download Unzip Author Title Affiliation Check number of tex Zip Rename Delete Download import requests from bs4 import BeautifulSoup# 登录网站并获取登录后的 session def login(username, password):login_url https://example.com/loginsession re…...

【Windbg】通过网络调试windows内核

环境 windows版本:win10_x64 1901 windbg版本:1.2306.12001.0 HOST 1、windbg软件设置。 点击菜单文件,然后如下图操作。 2、等待连接。 ************* Waiting for Debugger Extensions Gallery to Initialize **************>>&…...

代码随想录算法训练营之JAVA|第二十四天| 93. 复原 IP 地址

今天是第24天刷leetcode,立个flag,打卡60天。 算法挑战链接 93. 复原 IP 地址https://leetcode.cn/problems/restore-ip-addresses/ 第一想法 题目理解:将一串数字字符串变成正确的ip格式的字符串。 这类题目是切分字符串,ip一…...

网络安全 Day30-运维安全项目-堡垒机部署

运维安全项目-堡垒机部署 1. 运维安全项目-架构概述2. 运维安全项目之堡垒机2.1 堡垒机概述2.2 堡垒机选型2.3 环境准备2.4 部署Teleport堡垒机2.4.1 下载与部署2.4.2 启动2.4.3 浏览器访问teleport2.4.4 进行配置2.4.5 安装teleport客户端 2.5 teleport连接服务器 1. 运维安全…...

电脑文件夹备份命令

电脑文件夹备份 cmd窗口输入shell:startup 将备份.bat文件放到,自启动文件夹下 bat文件内容写以下就可以了 Xcopy "D:\文件\" "F:\文件备份\" /E/H/C/I/y...

RocketMQ Learning(一)

目录 一、RocketMQ 0、RocketMQ的产品发展 1、RocketMQ安装 1.1、windows下的安装 注意事项 1.2、Linux下的安装 1.3、源码的安装 1.4、控制台 2、消息发送方式 2.1、发送同步消息 2.2、发送异步消息 2.3、单向发送 3、消息消费方式 3.1、负载均衡模式&#xff0…...

libmpv使用滤镜处理视频进行播放

一、前言 作为一个功能强大的多媒体框架,libmpv为开发者提供了广泛的功能和灵活的控制权。滤镜是libmpv的一个重要特性,允许开发者对视频进行各种实时处理和增强,从而满足用户对于个性化、创意化和高质量视频体验的需求。 滤镜是一种在视频渲染过程中应用特定效果的技术。…...

Harbor.cfg 配置文件参数详解

目录 Harbor.cfg 配置文件参数详解 所需参数: hostname: ui_url_protocol: max_job_workers: db_password: customize_crt: ssl_cert: ssl_cert_key: secretkey_path&#…...

模仿火星科技 基于cesium+ 贴地测量+可编辑

当您进入Cesium的编辑贴地测量世界,下面是一个详细的操作过程,帮助您顺利使用这些功能: 1. 创建提示窗: 启动Cesium应用,地图场景将打开,欢迎您进入编辑模式。在屏幕的一角,一个友好的提示窗将…...

模仿火星科技 基于cesium+角度测量+高度测量+可编辑

1. 创建提示窗: 启动Cesium应用,地图场景将打开,欢迎您进入编辑模式。 在屏幕的一角,一个友好的提示窗将呈现,随着您的操作,它会为您提供有用的信息和指导。 2. 绘制面积: 轻轻点击鼠标左键&a…...

Codeforces の 动态规划

Codeforces Round 785 (Div. 2) - C. Palindrome Basis dp(9/100) 题目链接 思路:整数划分基础上加一个判断回文的条件 整数划分思路:背包容量为n,物品有体积为1~n n种,每种无数个,求使背包恰好装满的方案数——完全背…...

数学建模-爬虫系统学习

尚硅谷Python爬虫教程小白零基础速通(含python基础爬虫案例) 内容包括:Python基础、Urllib、解析(xpath、jsonpath、beautiful)、requests、selenium、Scrapy框架 python基础 进阶(字符串 列表 元组 字典…...

HarmonyOS/OpenHarmony应用开发-ArkTS语言渲染控制概述

ArkUI通过自定义组件的build()函数和builder装饰器中的声明式UI描述语句构建相应的UI。 在声明式描述语句中开发者除了使用系统组件外,还可以使用渲染控制语句来辅助UI的构建,这些渲染控制语句包括控制组件是否显示的条件渲染语句,基于数组数…...

【力扣刷题 | 第二十五天】

目录 前言: 474. 一和零 - 力扣(LeetCode) 总结: 前言: 今天我们依旧暴打动态规划 474. 一和零 - 力扣(LeetCode) 给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集…...

GO学习之 函数(Function)

GO系列 1、GO学习之Hello World 2、GO学习之入门语法 3、GO学习之切片操作 4、GO学习之 Map 操作 5、GO学习之 结构体 操作 6、GO学习之 通道(Channel) 7、GO学习之 多线程(goroutine) 8、GO学习之 函数(Function) 9、GO学习之 接口(Interface) 文章目录 GO系列前言一、什么是…...

Jstack线上问题排查

1.top查找出哪个进程消耗的cpu高。执行top命令,默认是进程视图,其中PID是进程号(记下进程号) 2.top中shifth 或“H”查找出哪个线程消耗的cpu高 (记下最高的几个线程号) jstack 进程号 >> pid-cpu.…...

VIM 编辑器: Bram Moolenaar

VIM 用了很长时间, 个人的 VIM 配置文件差不多10年没有更新了。以前写程序的时候, 编辑都用这个。 linux kernel, boost规模的代码都不在话下。现在虽然代码写的少了,依然是我打开文件的首选。 现在用手机了,配个蓝牙键…...

鸿蒙应用开发指南:从零开始构建一款智能音乐播放器

介绍 随着鸿蒙操作系统的发布,开发者们迫不及待地想要探索鸿蒙应用的开发。本篇博客将以构建一款智能音乐播放器为例,带你一步步了解鸿蒙应用开发的技术要点和实践。我们将使用HarmonyOS的开发环境和MarkDown进行排版,方便你快速上手。 准备…...

如何实现对主机的立体监控?

主机监控是保证系统稳定性和性能的重要环节之一,那应该如何实现对主机的立体监控? 本期EasyOps产品使用最佳实践,我们将为您揭晓: 主机应该如何分组和管理? 主机监控应该关注哪些关键性指标? 背 景 通…...

机器学习笔记:李宏毅ChatGPT Finetune VS Prompt

1 两种大语言模型:GPT VS BERT 2 对于大语言模型的两种不同期待 2.1 “专才” 2.1.1 成为专才的好处 Is ChatGPT A Good Translator? A Preliminary Study 2023 Arxiv 箭头方向指的是从哪个方向往哪个方向翻译 表格里面的数值越大表示翻译的越好 可以发现专门做翻…...

中电金信:逐数兴业 智启未来——“数据二十条”影响之解读 (下)

在逐数兴业 智启未来——“数据二十条”影响之解读(上)篇内容中,主要解读了有关于“数据二十条”发布的背景与意义、建立数据要素市场面临的挑战与应对。在今天的文章里,将继续解读“数据二十条”的主要内容以及对金融行业和金融科…...

54款宝藏级AIGC工具分享(claude,Midjourney,Stable Diffusion等)

随着ChatGPT的一波又一波高潮,生成式AI逐渐进入人们视野,并开始大行其道,正如人们所说:AI用的好,天天下班早! 当然,有效的利用AI不但能下班早,还能在上班时间摸鱼,就如潘…...

珠海建网站多少钱/怎样做seo搜索引擎优化

并发包 Java中还有一套并发工具包,位于包java.util.concurrent下,里面包括很多易用 且很多高性能的并发开发工具。 一、原子变量和CAS 为什么需要原子变量,因为对于例如count这种操作,使用 synchronized成本太高了。Java并发包的基…...

用什么软件做动漫视频网站好/线上营销模式有哪些

2019独角兽企业重金招聘Python工程师标准>>> RestTemplate可以使用loadBalanced,但加上了oauth2的restTemplate 就识别不到服务名称了。 这个是个蛋疼的问题。 查了一天的github,发现了这是一个bug。 spring-cloud-security问题 看了半天也没…...

黄石做企业网站/成人就业技术培训机构

本文转载自News BTC对CROSS的特别报道。以下为翻译的原文: 拍卖是财产权利转让的最古老方式之一。自从人类有了剩余价值的流动性需求,就有了拍卖这种方式。说到捡漏收藏界尽知的当属“明成化斗彩鸡缸杯”了。它的传承过程,似乎就是一部“拣大…...

镇江丹阳疫情最新情况/郑州企业网站seo

实验室有自己的服务器,同时院里也有集群,我用内网或者外网连接自己的服务器的时候都没什么问题,但是连接集群就一直连接不上,报错如下 vscode Acquiring lock on xxxx省略第一个解决办法 第一个方法是进入到服务器中自己的文件目…...

镇巴作风建设网站/营销网站建设门户

pip install cython -e git://github.com/surfly/gevent.git1.0rc2#egggevent使用技巧Gevent库性能很高,但一直以来我都纠结在python的GIL模型导致的线程不能抢占多核资源上面。而启动多个python进程的这种利用多核的模式又需要增加前端负载均衡,比如lvs…...

泰和网站制作/营销推广的作用

摘自:http://www.cnblogs.com/justinw/archive/2006/12/29/607498.html下面这些故事个个都很经典,值得思考...------------------------------------犯戒 老和尚携小和尚游方,途遇一条河;见一女子正想过河,却又不敢过。…...