Spring Boot实践一

news2024/10/7 4:37:03

一、Spring Boot简介

Spring Boot是一个基于Spring框架的快速开发应用程序的工具。它提供了一种快速、方便的方式来创建基于Spring的应用程序,而无需繁琐的配置。Spring Boot通过自动配置和约定大于配置的方式,使得开发者可以更加专注于业务逻辑的实现,而不是配置文件的编写。

Spring Boot提供了许多功能,包括:

  1. 自动配置:Spring Boot会根据应用程序的依赖关系自动配置应用程序。
  2. 嵌入式Web服务器:Spring Boot内置了Tomcat、Jetty和Undertow等Web服务器,可以轻松地创建Web应用程序。
  3. 简化的依赖管理:Spring Boot可以自动管理应用程序的依赖关系,避免了版本冲突和依赖管理的烦恼。
  4. 简化的配置:Spring Boot提供了一种简单的方式来配置应用程序,可以通过属性文件、YAML文件或命令行参数来配置应用程序。
  5. 健康检查:Spring Boot提供了健康检查功能,可以检查应用程序的状态,包括数据库连接、磁盘空间等。

总之,Spring Boot是一个非常强大的微服务框架,可以帮助开发者快速构建高质量的应用程序。

二、使用Spring Initializr创建 Spring Boot 项目

使用Spring Initializr可以快速创建一个Spring Boot项目,省去了手动配置的繁琐过程,让开发更加高效。共有两种创建方式。

方式1:使用Spring Initializr页面创建

地址:https://start.spring.io/

在这里插入图片描述

通过上面配置便完成了基础项目的创建。左侧选择 “Maven” 作为构建工具;右侧在 “Dependencies” 中选择需要的依赖项,例如 “Spring Web”、 “Spring Data JPA”、 “Spring Security” 等等。

最终生成的Spring Boot的基础结构共三个文件:
在这里插入图片描述

  • src/main/java下的程序入口:DemoSpringBootApplication
  • src/main/resources下的配置文件:application.properties
  • src/test/下的测试入口:DemoSpringBootApplicationTests

在Spring Boot工程中,还有一个pom.xml文件,是Maven项目的核心配置文件,用于管理项目的依赖和构建配置。打开pom.xml,可以看到Spring Boot项目的依赖。当pom.xml文件中的依赖或配置出现问题时,会显示为红色字体,表示存在错误或警告,需要先解决。常见的红色字体包括:

  1. 缺少依赖:如果项目中使用的某个依赖没有在pom.xml文件中声明或版本号不正确,编辑器会提示缺少依赖的错误信息。
  2. 依赖冲突:如果项目中使用的多个依赖包含相同的类或方法,会导致依赖冲突。编辑器会提示冲突的错误信息。
  3. 语法错误:如果pom.xml文件中存在语法错误,例如标签未闭合或属性值不正确,编辑器会提示语法错误的信息。
  4. 版本不兼容:如果项目中使用的依赖版本与Spring Boot版本不兼容,会导致编译或运行时出现错误。编辑器会提示版本不兼容的警告信息

正常如下所示,主要有四个部分:

  • 项目元数据:创建时候输入的Project Metadata部分,也就是Maven项目的基本元素,包括:<groupId>、<artifactId>、<version>、<name>、<description>
  • <parent>:继承spring-boot-starter-parent的依赖管理,控制版本与打包等内容
  • <dependencies>:项目具体依赖,这里包含了spring-boot-starter-web用于实现HTTP接口(该依赖中包含了Spring MVC);spring-boot-starter-test用于编写单元测试的依赖包。更多功能模块的使用我们将在后面的教程中逐步展开。
  • <build>:构建配置部分。默认使用了spring-boot-maven-plugin,配合spring-boot-starter-parent就可以把Spring Boot应用打包成JAR来直接运行。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.1.2</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>DemoSpringBoot</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>DemoSpringBoot</name>
    <description>DemoSpringBoot</description>
    <properties>
        <java.version>20</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

方式2:使用IntelliJ IDEA中的Spring Initializr创建

打开 IntelliJ IDEA,选择 “Create New Project”,在弹出的向导中选择 “Spring Initializr”,选择 “Maven” 或 “Gradle” 作为构建工具
在这里插入图片描述

选择 Spring Boot 版本,并在 “Dependencies” 中选择需要的依赖项,例如 “Spring Web”、 “Spring Data JPA”、 “Spring Security” 等等。最后,点击 “Create” 完成创建项目。
在这里插入图片描述

当在IntelliJ中点击“Run”时,可以看到如下回显,运行成功:
在这里插入图片描述

问题记录

当在IntelliJ中点击“Run”时,可能会碰到一些问题:

1,如果弹出“Edit Configuration”窗口
意味着需要配置运行环境,点击“Edit Configuration”窗口中的“+”按钮,选择Application,并配置程序参数、环境变量等。
首先要查看JDK是否正常添加:选择File -> Project Structure,选择SDKs选项卡,点击“+”按钮添加JDK
在这里插入图片描述

如果还不行,也有可能是如下问题2相同的原因导致:

2,提示错误:找不到或无法加载主类
可能是由于导入多模块项目,IDEA未能识别出主类,无法启动Springboot项目。通过Import Module解决:
(1)File -> Project Structure -> Modules -> Import Module,然后选定模块所在的目录
在这里插入图片描述

(2)import module时,选择maven类型
在这里插入图片描述
(3)添加完成后,左侧目录显示发生变化:
在这里插入图片描述

3,提示java:程序包org.springframework.boot不存在
可以在IDEA需要在Setting里将 Delegate IDE build/run actions to Maven勾选上。这个选项是将IDE构建/运行操作委托给Maven。spring boot工程建议开启这个,减少未知编译问题。
在这里插入图片描述

三、HTTP接口实现

创建一个名为HelloController的Java类,目录结构及实现如下:

在这里插入图片描述

package com.example.demospringboot.web;

import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;

@RestController
public class HelloController {
     @RequestMapping("/hello")
    public String index() {
        return "Hello World !";
    }

}

这个类使用了Spring MVC注解@RestController和@RequestMapping,它将处理来自根路径的HTTP GET请求,并返回一个字符串“Hello World !”。

启动主程序,访问http://localhost:8080/hello,可以看到页面返回:Hello World !

说明:
当你使用Spring Boot运行应用程序并访问http://localhost:8080时,页面实际上是由应用程序动态生成的,而不是从本地文件系统中读取的。

Spring Boot应用程序通常包含一个或多个控制器类,这些类使用Spring MVC框架来处理HTTP请求并生成响应。控制器类中的方法通常使用模板引擎(如Thymeleaf、Freemarker或JSP)来生成HTML页面,这些页面可以包含动态内容,如从数据库中检索的数据或从外部API获取的数据

参考:
https://blog.didispace.com/spring-boot-learning-21-1-1/
https://blog.csdn.net/qq943686211/article/details/119973931
https://blog.csdn.net/weixin_45977659/article/details/126664571

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

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

相关文章

电容笔和触控笔两者有哪些区别?比较好用的电容笔

与最初推出的那些触控笔相比&#xff0c;目前的电容笔更具有一些独特的特性&#xff0c;比如可以防止手在屏幕上误触&#xff0c;以及可以随意调节线条粗细。苹果的原装Pencil的价格目前也非常昂贵。因此&#xff0c;如果你没有足够的预算&#xff0c;那么你最好选择一支平替电…

装修行业专用装修设计施工团队工地进度小程序开发

互联网高速发展带来的就是大家越来越依赖互联网&#xff0c;从衣食住行都在向互联网整合​。传统的装修行业借助互联网也诞生了新的营销引流​方法。 以前装修房子大家都会参考邻居、朋友、亲戚&#xff0c;但现在不同了&#xff0c;互联网帮助很多人在线上了解装修公司、装修…

探讨ChatGPT的强化学习:AI学习与交互的未来

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

Vue3学习组合式API(二)

1、计算属性compute <script setup> //导入 import {ref, computed } from vue const state ref(0) //原始数据 const count ref(1); //计算属性 const doubleCount computed(()>count.value*2);//原始数据 const list ref([1,2,3,4,5,6,7,8]); //list属性值 con…

【Linux】详解线程控制 -- 线程用法 | 线程等待 | 线程ID及地址空间布局

OS提供的轻量级进程接口POSIX线程库 线程使用1.如何创建一堆线程2.线程如何终止3.线程如何取消 线程等待线程退出返回值C11的多线程线程ID及地址空间布局线程地址空间布局线程局部存储 分离线程 OS提供的轻量级进程接口 (关于 用户 → 库 → OS :具体可看下面线程地址空间布局)…

好用亦免费的系统镜像备份软件!

​Windows系统现状 Windows系统备份的重要性日益凸显。随着Windows 7退出历史舞台,Windows 11/10的使用率快速上升。新电脑不再支持Windows 7,许多用户只能转向更新系统。加之Windows 11功能趋于成熟稳定,越来越多人开始适应并接受它。 因此,选择一个适合Windo…

马上做还是等一下?

马上做还是等一下&#xff1f;这是一个产品人经常会遇到的问题。今天想跟大家分享的是面临这两个选择的两个场景和一些感悟。 图1 - 我们总会遇到各种各样的问题&#xff0c;难以抉择 场景一&#xff1a;当你接到一项工作时&#xff0c;会选择高效执行马上开始&#xff0c;还是…

前端图标解决方案

1. 前言 随着 Web 技术的发展与日益丰富的界面需求&#xff0c;图标逐渐成为前端开发中不可或缺的一部分&#xff0c;为此也诞生了各种各样的解决方案。文章总结及分析了目前常见的一些图标解决方案。 2. CSS 背景图片 2.1 background-image 图标本质上也是图片&#xff0c…

子网划分和计网解题方法

子网的基本概念 子网是计算机网络中的一个逻辑单元&#xff0c;是由多个IP地址组成的网络。在计算机网络中&#xff0c;IP地址是一个32位的二进制数&#xff0c;用于标识网络上的设备。子网划分是将一个大型的IP地址网络划分为多个小的IP地址网络&#xff0c;每个小的IP地址网…

软件外包开发的项目管理工具

在开发大型项目时涉及到多人管理&#xff0c;细节比较多&#xff0c;需要借助科学的项目管理方法和软件工具来提高软件项目效率。现在有比较多的项目管理方法和配套工具&#xff0c;每个项目和团队的情况不同&#xff0c;选择适合自己的是最重要的。今天和大家分享软件项目管理…

小程序新渲染引擎 Skyline 发布正式版

为了进一步提升小程序的渲染性能和体验&#xff0c;我们推出了一套新渲染引擎 Skyline&#xff0c;现在&#xff0c;跟随着基础库 3.0.0 发布 Skyline 正式版。 我们知道&#xff0c;小程序一直用 WebView 来渲染界面&#xff0c;因其有不错的兼容性和丰富的特性&#xff0c;且…

【通世智库】陈敏华:永存我心的爱——忆我的丈夫陶一凡

​ 2022年12月25日&#xff0c;我敬爱的丈夫&#xff0c;平静安然的告别了眷恋着他的亲友们&#xff0c;走了。 72年前&#xff0c;在上海致远中学上学不满16岁的陶一凡&#xff0c;毅然弃笔从戎&#xff0c;随志愿军跨过鸭绿江&#xff0c;奔赴朝鲜战场。他说过&#xff0c;12…

企业通过CRM分析销售数据有什么用处?

企业为什么要分析CRM销售数据&#xff1f;分析CRM销售数据的目的&#xff0c;是为企业提供对其销售业绩、客户行为和市场趋势的宝贵见解。通过分析这些数据&#xff0c;企业可以确定他们表现良好的领域和需要改进的领域。 1、销售业绩 通过分析CRM销售数据&#xff0c;企业可…

云计算——ACA学习 数据中心概述

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​ 目录 写在前面 课程目标 学前了解 一.数据中心定义 二.数据中心涉及的主要标准与规范 …

adas知识

车辆坐标系 右手坐标系&#xff0c;红色箭头方向角度为正。 传感器坐标系&#xff08;如相机&#xff09;

关于项目,会问我什么?

作者&#xff1a;阿秀 校招八股文学习网站&#xff1a;https://interviewguide.cn 这是阿秀的第「288」篇原创 小伙伴们大家好&#xff0c;我是阿秀。 在校招求职这块&#xff0c;简历上比较重要的点就是教育背景、实习经历、项目经验三块&#xff0c;其中教育背景都到了秋招这…

TencentOS Server镜像操作系统介绍_常见问题解答FAQ

腾讯云TencentOS Server镜像是腾讯云推出的Linux操作系统&#xff0c;完全兼容CentOS生态和操作方式&#xff0c;TencentOS Server操作系统为云上运行的应用程序提供稳定、安全和高性能的执行环境&#xff0c;TencentOS可以运行在腾讯云CVM全规格实例上&#xff0c;包括黑石物理…

naive-ui的dialog.warning 关闭和阻止关闭

序&#xff1a; 1、如果你卡到 了&#xff0c;博主没写博客&#xff0c;可以在博主的公众号&#xff1a;“程序员野区” 留言。博主看到有时间再帮你去试 2、博主主要讲的怎么 主动关闭dialog和阻止dialog 自动关闭。 注意&#xff01;&#xff01;&#xff01;&#xff01;来&…

蛋白组学富集分析 uniport id蛋白ID如何进行KEGG和GO富集分析 代谢组学

使用蛋白ID如何进行KEGG和GO富集分析 - 知乎 (zhihu.com) 昨天&#xff0c;有个童鞋咨询如何使用蛋白ID进行功能富集分析&#xff0c;功能富集分析主要是KEGG和GO。 思路 蛋白ID转UniProt数据库IDUniProt数据库ID转KEGG和GO号使用KEGG和GO号进行富集分析 教程&#xff08;实操…

5.CSS(二)

目录 一、Emmet语法 &#xff08;一&#xff09;快速生成HTML结构语法 &#xff08;二&#xff09;快速生成CSS样式语法 二、CSS的复合选择器 &#xff08;一&#xff09;后代选择器&#xff08;重要&#xff09; &#xff08;二&#xff09;子选择器&#xff08;重要&…