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

Spring Boot 入门

前言

Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级的基于 Spring 的应用程序。它简化了基于 Spring 的应用开发,通过提供一系列的“起步依赖”来快速启动和运行 Spring 应用。本文将带你深入了解 Spring Boot 的核心概念、关键特性,并指导你如何构建一个简单的微服务。

为什么选择 Spring Boot?

在传统的 Spring 应用中,开发者需要配置大量的 XML 文件或使用注解来配置 Spring 容器。Spring Boot 通过以下方式简化了这一过程:

自动配置:Spring Boot 根据类路径中的 jar 包依赖为应用自动配置 Bean。
起步依赖:提供了一组预先定义好的依赖,简化了 Maven 或 Gradle 配置。
内嵌容器:Spring Boot 应用可以内嵌 Tomcat、Jetty 或 Undertow 等 Web 容器,无需部署 WAR 文件。
无需 XML 配置:通过注解来配置应用,减少了 XML 配置的复杂性。

环境准备

在开始之前,请确保你的开发环境中安装了以下软件:

Java Development Kit (JDK) 17 (推荐) 或更高版本
Maven 或 Gradle 构建工具
一个文本编辑器或 IDE(如 IntelliJ IDEA 或 Eclipse)

构建第一个 Spring Boot 应用

使用 Spring Initializr 创建项目

Spring Initializr(https://start.spring.io/)是一个快速生成 Spring Boot 项目的工具。它提供了一个 Web 界面,让你选择所需的依赖并下载项目结构。 如果没有梯子 可能访问过于慢 可以使用阿里云的 初始化工具 https://start.aliyun.com/

  • 访问 https://start.spring.io/ 无梯子可使用 https://start.aliyun.com/

  • 选择项目元数据(如 Group、Artifact、Name 等)
    最新的springboot版本总 jdk 最低要求17版本
    在这里插入图片描述

  • 选择依赖(如 Web、JPA、MySQL 等)
    在这里插入图片描述

  • 点击“Generate”按钮生成项目

  • 下载项目压缩包并解压

构建和运行应用

解压下载的项目,并使用以下命令构建和运行你的应用:

配置项目使用的jdk 以及 maven

正确设置项目的jdk
在这里插入图片描述

配置项目maven 以及配置文件
在这里插入图片描述

使用Maven 构建
cd your-project-folder
mvn spring-boot:run 
使用 Gradle 构建
cd your-project-folder
./gradlew bootRun 

创建 RESTful 服务

在你的 Spring Boot 应用中,创建一个简单的 RESTful 服务:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {@GetMapping("/hello")public String hello() {return "Hello, Spring Boot!";}
}

测试服务

使用浏览器或 Postman 访问 http://localhost:8080/hello,你应该能看到返回的 “Hello, Spring Boot!” 消息。

附录

Spring Boot 官方文档:Spring Boot Documentation

总结

Spring Boot 通过简化配置和提供内嵌容器,使得构建独立、生产级的 Spring 应用变得简单快捷。本文介绍了 Spring Boot 的基本概念、核心特性,并指导你构建了一个简单的 RESTful 服务。通过进一步的学习,你可以利用 Spring Boot 构建复杂的微服务应用。


good day!!!

http://www.lryc.cn/news/442509.html

相关文章:

  • LDD学习2--Scull(TODO)
  • 【算法-堆排序】
  • 音视频入门基础:AAC专题(4)——ADTS格式的AAC裸流实例分析
  • 【第33章】Spring Cloud之SkyWalking服务链路追踪
  • 如何选择OS--Linux不同Distribution的选用
  • cesium效果不酷炫怎么办--增加渲染器
  • 计算机网络:概述 --- 体系结构
  • DEPLOT: One-shot visual language reasoning by plot-to-table translation论文阅读
  • 从 HDFS 迁移到 MinIO 企业对象存储
  • Rust 常见问题汇总
  • java泛型类与泛型方法
  • Android String资源文件中,空格、换行以及特殊字符如何表示
  • CUDA及GPU学习资源汇总
  • uniapp vue3 梯形选项卡组件
  • 如何在微信小程序中实现WebSocket连接
  • 二级等保测评中安全物理环境的重要性及高危项分析
  • C++11——lambda
  • Dubbo3序列化安全问题
  • 秒懂Linux之共享内存
  • 【计算机网络】网络层协议解析
  • sqlist void reverse(SqList A)
  • 聊聊Thread Local Storage
  • WEB攻防-JS项目Node.js框架安全识别审计验证绕过
  • STM32——SPI
  • 【云安全】云上资产发现与信息收集
  • flask搭建微服务器并训练CNN水果识别模型应用于网页
  • 数据篇| 关于Selenium反爬杂谈
  • MySQL高阶1890-2020年最后一次登录
  • update-alternatives官方手册
  • cesium.js 入门到精通(5-2)