Spring Boot项目创建和使用

news/2024/11/23 5:16:58/

一、Spring Boot简介

1.概念

Spring Boot 就是 Spring 框架的脚⼿架,它就是为了快速开发 Spring 框架⽽诞⽣的。

2.优点

  1. 有快速集成框架,可以快速添加外部jar包
  2. 内置web框架,可以直接运行
  3. 可以快速部署,不依赖任何外部的web容器
  4. 抛弃繁琐的XML,使用注解和配置方式进行开发
  5. 支持更多的监控指标,可以更容易且直观的观察项目的运行情况。

二、Spring Boot项目的创建

idea方式(主流)

  1. new project

  2. 选择spring boot项目,选择合适的jdk版本,设置创建项目源(这里使用默认的)

  3. 项目参数设置

  4. 选择spring boot版本,添加项目依赖

  5. 设置项目名称和保存路径

  6. 确保idea正常加载springboot项目

    删除无用文件共四个[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5aGfco4f-1683639912910)(F:\typora插图\image-20230509151255270.png)]

控制台打印启动所用时间且debug未终端,说明spring boot项目已经创建好了。

下边是步骤图示:

注:前提是安装了Spring Boot Helper插件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5gRBveYa-1683639912912)(F:\typora插图\image-20230509150409949.png)]

注意:1. 如果项目加载出错,可能是maven国内源没配置好

网页方式

  1. 与前边类似,这个是到官网下载压缩包:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EEo5wdQg-1683639912913)(F:\typora插图\image-20230509150930059.png)]

  1. 将文件解压,并用idea打开

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2qng0RYI-1683639912914)(F:\typora插图\image-20230509151039143.png)]

  2. 删除无用文件

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eXYAAdgF-1683639912915)(F:\typora插图\image-20230509151058843.png)]

建议:本地保存一个压缩包,做备用。

Spring Boot目录说明

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V2WWGNJi-1683639912916)(F:\typora插图\image-20230509151710937.png)]

另外,static目录用来存放html等静态文件

三、输出Hello World

我们学习 JavaEE(java企业级开发) 就是⽤来实现 Web 项⽬或接⼝的,之前 Spring 其实是⼀个普通 Java 项⽬,没办法直接和浏览器进⾏互动,而添加了spring提供的web相关的依赖,我们就可以和浏览器直接互动了。

所以接下来我们要⽤ Spring Boot 来实现和浏览器及⽤户的交互。

数据准备:

package com.example.demo.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController//组合注解即Rest+Controller
@RequestMapping("/user")//路由注册:大小写敏感需要全部小写
public class UserController {@RequestMapping("/sayhi")public String sayHi(){return "Hi,Spring Boot.";}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O3pJ7lYy-1683639912917)(F:\typora插图\image-20230509153310774.png)]

之后重新启动:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eKvibq8m-1683639912918)(F:\typora插图\image-20230509153252644.png)]

访问 http://localhost:8080/user/sayhi :

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uoZH3VOG-1683639912919)(F:\typora插图\image-20230509153104848.png)]

SpringBoot项目特点:约定大于配置

创建完SpringBoot项目我们可以发现,在 Spring Boot 中是不需要配置 Bean 的扫描路径的。原因就是SpringBoot项目具有约定大于配置的特点。

这里的约定指的是Maven的目录结构、spring boot默认的配置文件、application.yml中默认属性等。

默认约定下,容器类和启动类都在同级目录下,spring boot默认情况下会自动扫描容器类,当实际内容与默认约定不匹配时,我们一般把对象单独注册到容器中。

SpringBoot的默认约定有:

1、Maven的目录结构。默认有resources文件夹,存放资源配置文件。src-main-resources,src-main-java。默认的编译生成的类都在targe文件夹下面。

2、spring boot默认的配置文件必须是,也只能是application.命名的yml文件或者properties文件,且唯一。

3、application.yml中默认属性。数据库连接信息必须是以spring: datasource: 为前缀;多环境配置。该属性可以根据运行环境自动读取不同的配置文件;端口号、请求路径等。

4、SpringBoot 约定,当你导入 spring-boot-starter-web 后,就约定了你是一个 web 开发环境。就约定了你会使用 SpringMVC。至于其它的也约定你会需要,都给你默认导入进来。当你觉得不合适的时候,可以用更少的改动,满足你的需要。

5、当我们导入spring-boot-starter-web后,就会自动帮我们导入springMVC的相关依赖和一个内置的tomcat容器,以及spring-boot-starter-logging依赖。这使得在开发阶段可以直接通过 main 方法或是 JAR 包独立运行一个 WEB 项目。

6、SpringBoot 约定以 starter 的形式减少依赖,于是相继推出了不少常用的 starter。

logging依赖。这使得在开发阶段可以直接通过 main 方法或是 JAR 包独立运行一个 WEB 项目。

6、SpringBoot 约定以 starter 的形式减少依赖,于是相继推出了不少常用的 starter。

当实际开中某个东西不满足SpringBoot的默认约定是,需要单独配置和具体指明才行。


http://www.ppmy.cn/news/62689.html

相关文章

科普文:国内ChatGPT怎么用,ChatGPT国内怎么用,关于ChatGPT你需要了解的内容应该都在这

在国内用了很长一段时间的ChatGPT,每次跟小白,哪怕是用ChatGPT的人交流的时候,都感觉解释不清,正好今天周末,给大家整理一篇关于ChatGPT的科普文,想要了解或使用ChatGPT的人,一定要看~~~&#x…

基于物联网及云计算技术的智慧充电桩平台设计方案

针对目前的充电桩监管难题,如何逐一击破各个痛点? TSINGSEE可提供基于"智能充电设备+云平台+APP小程序"一体化完整的解决方案,解决当前充电桩运营商面临的各种运营和管理难题。 一、方案介绍 方案充分利用…

深入了解目标检测技术--从基本概念到算法入门

前言: Hello大家好,我是Dream。 众所周知,目标检测是计算机视觉领域中的重要任务之一,其目的是识别图像或视频中包含的物体实例并将其定位。实现目标检测可以帮助人们在自动驾驶、机器人导航、安防监控等领域中更好地理解和应用图…

04-Docker镜像

镜像 镜像是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),这个打包好的运行环境就是…

数据结构学习记录——堆的建立(最大堆的建立、思路图解、代码实现、代码解释)

目录 最大堆的建立 方法1 方法2 思路图解 代码实现 代码解释 PercDown BuildHeap 最大堆的建立 建立最大堆:将已经存在的N个元素按最大堆的要求存放在一个一维数组中。 方法1 通过插入操作,将N个元素一个一个地插入到一个初始为空的堆中去。…

Vue中的脚手架和路由

私人博客 许小墨のBlog —— 菜鸡博客直通车 系列文章完整版,配图更多,CSDN博文图片需要手动上传,因此文章配图较少,看不懂的可以去菜鸡博客参考一下配图! 系列文章目录 前端系列文章——传送门 后端系列文章——传送…

RabbitMQ可靠性消息发送(java实现)

本博客属于 《RabbitMQ基础组件封装—整体结构》的子博客 一、整体架构 step1:消息落库,业务数据存库的同时,也要将消息记录存入数据库,二者要保证原子性; step2:Producer发送消息到MQ Broker&#xff1b…

Hudi的介绍与安装编译

Hudi的介绍 安装Maven 编译Hudi 执行编译 Hudi的介绍 Hudi简介 Hudi(Hadoop Upserts Delete and Incremental)是下一代流数据湖平台。Apache Hudi将核心仓库和数据库功能直接引入数据湖。Hudi提供了表、事务、高效的upserts/delete、高级索引、流摄取…