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

小白入门基础 - spring Boot 入门

1.简介

        spring Boot是为了简化java的开发流程而构建的,即使是使用springMVC框架,也依然需要大量配置和依赖导入,
        这无疑是繁琐的,spring Boot采用了”习惯由于配置“的原则,进行一键化部署,这样极大减少了人工开发量。

传统Spring开发流程:

 Spring Boot开发流程:

 Spring Boot在依赖管理、容器配置、组件参数这方面,都极大的优化了开发量。
开发者只需要专注于业务逻辑开发。

2.项目构建

1、目录创建以及依赖包引入

spring目录结构:

 2、创建一个项目:

3、引入项目依赖:

<parent><groupId>org.springframework.boot</groupId><!--所有spring都要依赖spring-boot-parent才能进行构建--><artifactId>spring-boot-parent</artifactId><version>2.0.1.RELEASE</version>
</parent>
<dependencies><dependency><groupId>org.springframework.boot</groupId><!--使用一些列starter启动器来描述工程所需要功能--><artifactId>spring-boot-starter-web</artifactId></dependency>
</dependencies>
<!--项目构建方式-->
<build><!--以插件的形式来进行构建--><plugins><plugin><groupId>org.springframework.boot</groupId><!--将所有的类和资源打包成一个独立的jar包--><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>

SpringBoot会帮我们引入一系列的依赖包:

4、使用Maven构建Spring Boot

(1)创建控制器

@Controller
public class MyController {@RequestMapping("/out")@ResponseBodypublic String out(){return "success";}
}

(2)编写入口类

入口类名字:工程名+application单词

//说明这是一个SpringBoot应用的入口类
@SpringBootApplication
public class MySpringBootApplication {public static void main(String[] args) {//启动SpringBoot应用SpringApplication.run(MySpringBootApplication.class);}
}

这种启动方式和python中的django以及go中的beego类似了。

(3)应用启动

执行入口文件:

 springboot启动起来了。

5、访问浏览器:

springboot应用、部署、发步都已经启动起来了。
是不是特别简单了,再也不用使用tomcat来启动应用了。

6、Spring Initializr构建springboot应用

使用Maven手动创建的时候,需要构建项目结构,手动引入依赖包,创建入口类。
IDEA提供了向导工具Initizlizr,可以帮我们一键创建SpringBoot项目。

 项目配置:

 选择启动器:

创建完成之后,我们发现自动帮我们生成了各类文件配置。
自动生成了入口类:

@SpringBootApplication
public class Springbootdemo1Application {public static void main(String[] args) {SpringApplication.run(Springbootdemo1Application.class, args);}
}

 三:结尾

       现在大部分产品都是直接以SpringBoot为脚手架开发了,它的核心就是实现了自动装配,当然它的整个使用的核心依然是spring, 只不过通过它可以很高效率的编写spring应用,技术都是不断迭代的,在以前,Spring起项目的时候,繁杂的配置太多了。我们的重点是快速成型,先干活,后边有兴趣再研究也可以~ 框架这个东西首先要会用。好啦,本文就到此为止啦,希望能够对各位小伙伴有所帮助哦!

相关文章:

小白入门基础 - spring Boot 入门

1.简介 spring Boot是为了简化java的开发流程而构建的&#xff0c;即使是使用springMVC框架&#xff0c;也依然需要大量配置和依赖导入&#xff0c; 这无疑是繁琐的&#xff0c;spring Boot采用了”习惯由于配置“的原则&#xff0c;进行一键化部署&#xff0c;这样极大…...

探索Elasticsearch内存应用的关键因素

了解Elasticsearch内存模型 Elasticsearch的内存使用主要包括堆内存和操作系统缓存。堆内存是Elasticsearch用来存储数据结构的内存&#xff0c;例如文档索引、倒排索引等。操作系统缓存则是Elasticsearch缓存磁盘上的数据块以加速读取操作的一种机制&#xff0c;通常被称为OS…...

关于简单的数据可视化

1. 安装数据可视化必要的openpyxl、pandas&#xff0c;matplotlib等软件包 使用清华源&#xff0c;命令如下&#xff1a; pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn pandaspip install -i https://pypi.tuna.tsingh…...

透明OLED屏价格:影响因素与市场趋势

在当今的显示技术领域&#xff0c;透明OLED屏以其独特的透明特性和出色的显示效果&#xff0c;正逐渐成为市场的新宠。然而&#xff0c;对于许多消费者和企业来说&#xff0c;透明OLED屏的价格仍是关注的焦点。作为OLED透明屏市场部总监&#xff0c;我认为了解影响透明OLED屏价…...

C++ 释放指针

在C中&#xff0c;释放指针通常使用delete或delete[]操作符&#xff1b; 如果指针指向的是单个对象&#xff0c;可以使用delete操作符进行释放&#xff1b; 在释放完内存后&#xff0c;最好将指针置为nullptr&#xff0c;以避免出现悬空指针&#xff08;dangling pointer&#…...

三数之和【双指针】

Problem: 15. 三数之和 文章目录 思路 & 解题方法复杂度Code 思路 & 解题方法 两数相加的加强版&#xff0c;先确定第一个数&#xff0c;然后从右边去用双指针找另外两个数。注意题目需要避免重复的答案&#xff0c;所以要注意处理这个问题。 复杂度 时间复杂度: 添加…...

http 503 错误

503错误是一种HTTP状态码&#xff0c;表示你请求的网站或服务暂时不可用&#xff0c;通常是因为服务器过载或维护&#xff0c;你可能会看到类似这样的提示&#xff1a;503 Service Unavailable、503 Service Temporarily Unavailable、HTTP Server Error 503、HTTP Error 503 I…...

MATLAB - MPC - 优化问题(Optimization Problem)

系列文章目录 前言 模型预测控制可在每个控制间隔内解决一个优化问题&#xff0c;具体来说就是二次规划(QP)。求解结果决定了被控对象在下一个控制间隔之前使用的操纵变量&#xff08;MV&#xff09;。 该 QP 问题具有以下特点&#xff1a; 目标或 "成本 "函数 - …...

机器学习中的概念 张量、标量、向量、矩阵等数据结构的区别

张量、标量、向量和矩阵等数据结构在深度学习和数学中扮演着重要角色&#xff0c;它们之间的区别如下&#xff1a; 标量&#xff08;Scalar&#xff09;&#xff1a;标量是一个单独的数&#xff0c;它没有方向&#xff0c;只有大小。在深度学习中&#xff0c;标量通常表示一个…...

eureka注册列表 某服务出现多个服务实例

最近文件导出功能偶发成功&#xff0c;大部分情况都失败&#xff0c;开始以为接口被拦截&#xff0c;gateway服务没有接口调用日志&#xff0c;发现测试环境可以&#xff0c;正式环境功能无法正常使用。 偶然看到注册中心如下 发现file服务有3个实例&#xff0c;调用接口将错误…...

ubuntu22.04配置双网卡绑定提升带宽

这里写自定义目录标题 Bonding简介配置验证参考链接 Bonding简介 bonding(绑定)是一种linux系统下的网卡绑定技术&#xff0c;可以把服务器上n个物理网卡在系统内部抽象(绑定)成一个逻辑上的网卡&#xff0c;能够提升网络吞吐量、实现网络冗余、负载均衡等功能&#xff0c;有很…...

VINS-MONO拓展1----手写后端求解器,LM3种阻尼因子策略,DogLeg,构建Hessian矩阵

文章目录 0. 目标及思路1. 非线性优化求解器2. 基于VINS-MONO的Marginalization框架构建Hessian矩阵2.1 estimator.cpp移植2.2 solve.cpp/preMakeHessian()2.3 solve.cpp/makeHessian() 3. solve.cpp/solveLinearSystem()求解正规方程4. 更新状态5. 迭代求解6. EVO评估结果7. 待…...

RxJS 操作符-学习笔记

提前准备&#xff1a; pipe 方法: 用于组合多个操作符,可以将一系列操作符作为参数传递给 pipe 方法&#xff0c;这些操作符将 依次 对数据流进行处理。这里的依次很关键&#xff0c;也代表着pipe()中组合的这么几个操作符的执行顺序就是从开始一直到结束的&#xff0c;其中的…...

【Linux】linux配置静态IP、动态IP方法汇总

1、systemd-networkd 1.1 说明 systemd-networkd是systemd 的一部分 ,负责 systemd 生态中的网络配置部分(systemd-networkd.service, systemd-resolved.service)。使用 systemd-networkd,你可以为网络设备配置基础的 DHCP/静态IP网络等,还可以配置虚拟网络功能,例如网桥…...

Hive自定义函数支持国密SM4解密

当前项目背景需要使用到国密SM4对加密后的数据进行解密&#xff0c;Hive是不支持的&#xff0c;尝试了华为DWS数仓&#xff0c;华为只支持在DWS中的SM4加密解密&#xff0c;不支持外部加密数据DWS解密 新建Maven工程 只需要将引用的第三方依赖打到jar包中&#xff0c;hadoop和…...

CentOS 8 8.5.2111 网络在线安装系统 —— 筑梦之路

之前写过一篇关于centos 8 官方停止更新维护后解决yum源问题的文章&#xff1a; CentOS 8 停止维护后换可用yum源——筑梦之路_http://ftp.iij.ad.jp/pub/linux/centos-vault/8.5.21-CSDN博客 由于centos 8 dvd的镜像比较大&#xff0c;有时候我们根本不需要去下载一个10G以上…...

安全与认证Week3

目录 Key Management 密钥管理 密钥交换、证书 密钥的类别 密钥管理方面 密钥分发问题 密钥分发方案 混合密钥分发 公钥分发 公钥证书 X.509 理解X.509 X.509证书包含 X.509使用过程 X.509身份验证服务 X.509版本3 取消 由X.509引申关于CA 用户认证、身份管理…...

跟我学c++中级篇——再谈C++20中的协程

一、协程 在前面分析过协程是什么&#xff0c;也对c20中的协程的应用进行了举例说明。所以这次重点分析一下c20中的整体构成及应用的方式。等明白了协程是如何动作的&#xff0c;各种情况下如下何处理相关的事件&#xff0c;那么在以后写协程时就不会死搬硬套了。 二、整体说…...

【计算机毕业设计】SSM企业工资管理系统

项目介绍 本项目包含管理员与普通员工两种角色&#xff0c; 管理员角色包含以下功能&#xff1a; 管理员登录,员工管理,部门管理,岗位管理,职称管理,工龄奖金管理,工资项管理,考勤管理,工资查询,统计图表等功能。 员工角色包含以下功能&#xff1a; 员工登录,个人信息管理…...

x-cmd pkg | doggo - 现代化的 DNS 客户端

目录 简介首次用户快速实验指南功能特点类似工具与竞品进一步探索 简介 doggo 是一个由 Karan Sharma 于 2020 年使用 Go 语言开发的 DNS 客户端。它类似于 dig 命令&#xff0c;但旨在以现代化、简洁和可读的格式输出 DNS 查询结果。 首次用户快速实验指南 使用 x doggo 即可…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义&#xff08;Task Definition&…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...