Spring Boot:筑基

news2024/11/27 6:34:12

Spring Boot

  • 前言
  • 概述
  • 使用 Intellij idea 快速创建 Spring Boot 项目
    • 注意事项

在这里插入图片描述

前言

在学习 Spring 、SpringMVC 、MyBatis 和 JPA 框架的过程中,了解到 SSM 框架为 Java Web 开发提供了强大的后端支持,JPA 框架则简化了数据库的操作。然而,SSM 框架需要手动配置大量 XML 文件,JPA 框架也需要处理繁琐的配置和整合工作。

Spring Boot 框架继承了 SSM 框架和 JPA 框架的优点,并在此基础上进行了优化和扩展。其可以通过自动配置和起步依赖,极大地简化了配置工作。同时,Spring Boot 整合了 Servlet 容器,无需额外配置即可运行 Web 应用程序,还提供了丰富的命令行界面和监控管理功能,方便开发者对应用程序进行测试、调试和监控。总体来说,Spring Boot 的生态系统是非常完善的,与各种技术和框架都能很好地集成。

简而言之,Spring Boot 能够进一步简化开发过程,提高开发效率,同时提供了强大的功能和生态系统支持。对于希望快速构建稳定可靠系统的开发者来说,Spring Boot 无疑是一个不可多得的好工具。在完成 SSM 和 JPA 框架的学习后,再学习 Spring Boot 框架是一个自然而然的进阶过程。下面简单介绍 Spring Boot 框架的基础知识。

概述

Spring Boot,是基于 Spring 框架的延伸,是一个旨在简化 Spring 应用程序初始搭建以及开发过程的工具。其设计目标是让开发者能够尽可能快速地搭建 Spring 应用程序,并尽可能减少配置文件的使用,使得开发者能够更专注于业务逻辑的实现。

在这里插入图片描述

Spring Boot 主要功能

  • 自动配置:Spring Boot 的核心特性之一,其可以根据项目中的 jar 包、类和其他依赖项,自动为 Spring 应用程序中的组件进行配置,极大地减少了手动配置的工作量。
  • 起步依赖:Spring Boot 提供了大量的起步依赖( starter ),这些起步依赖预装了常用的库和框架,使得开发者能够快速地集成所需的功能,而无需手动添加大量的依赖项。
  • 内嵌 Servlet 容器:Spring Boot 可以内嵌 Servlet 容器(如 Tomcat 、Jetty 或 Undertow 等),这使得开发者无需部署到外部的 Servlet 容器中,而是可以直接运行 Spring Boot 应用程序。
  • 简化数据库操作:Spring Boot 可以方便地集成各种 SQL 和 NoSQL 数据库(如 MySQL 、Oracle 、MongoDB 和 Redis 等)。通过集成 Spring Data JPA 或 MyBatis 等持久层框架,可以简化数据库操作。
  • 缓存支持:Spring Boot 提供了对各种缓存技术的支持(如 Ehcache 、Redis 、Memcached 和 Hazelcast 等),这些技术可以用来提高应用程序的性能。
  • 日志管理:Spring Boot 提供了强大的日志框架,可以方便地进行日志的管理和记录,帮助开发者更好地追踪和调试应用程序中的问题。
  • 任务调度:Spring Boot 支持使用 Spring Task 和 Quartz 等任务调度框架,实现定时任务和异步任务。
  • 邮件发送:Spring Boot 内置了邮件发送的支持,可以方便地实现邮件发送功能。
  • 页面渲染:Spring Boot 支持多种页面渲染技术(如 Thymeleaf 、FreeMarker 和 JSP 等),使得开发者可以轻松地创建和展示动态页面。
  • 模块化开发:在 Spring Boot 项目中,通常会有多个模块,如 Entity(实体层)、Dao(数据访问层)、Service(服务层)、Controller(控制层)和 Utils(工具层) 等,这些模块各司其职,使得开发过程更加清晰和模块化。

使用 Intellij idea 快速创建 Spring Boot 项目

在项目开发中,通常使用 Intellij idea 来快速创建一个 Spring Boot 项目(以 Intellij idea 2023.3.3 、JDK 20.0.2 、Maven 3.8.1 、Spring Boot 3.0.2 为例)。

注:如果自身的 IntelliJ IDEA 版本过低,建议安装新版本的 IntelliJ IDEA ,否则可能出现比较难解决且不必要的麻烦。

简单示例:

1. 打开 Intellij idea ,点击 New Project ,创建新项目
在这里插入图片描述

2. 根据自身偏好设置项目的信息

注:
Server URL 设置为 https://start.aliyun.com ,可选择更低版本的 Java .
Type 设置为 Maven .
JDK 中可以选择下载 1.8 以上版本的 JDK .

在这里插入图片描述

3. 选择 Spring Boot 3.0.2 ,并勾选 Web 中的 Spring Web ,以其为例,点击 Create

注:
这个是 Spring Boot 起步依赖的功能
勾选的为启动器( Starter ),是一组预定义的依赖集合,会为项目提供了一系列的自动配置。

常见的 Spring Boot 启动器:

  • spring-boot-starter-web:用于构建 Web 应用,包括 Spring MVC 和 Tomcat 。
  • spring-boot-starter-data-jpa:用于使用 JPA 进行数据库操作。
  • spring-boot-starter-thymeleaf:用于使用 Thymeleaf 模板引擎。
  • spring-boot-starter-security:用于添加 Spring Security 安全功能。
  • spring-boot-starter-amqp:用于添加 AMQP 消息代理支持。
  • spring-boot-starter-cloud-connectors:用于与 Spring Cloud Connectors 集成。

每个启动器都包含了一系列与特定功能相关的库,以及必要的自动配置代码。

在这里插入图片描述

4. 创建完成后,可以将部分文件删除,并创建项目可能所需要的文件
项目目录结构如图:

注:
resources 目录结构中,static 用于存放静态资源文件;templates 用于存放视图模板;application.properties 为 Spring Boot 全局配置文件,可修改配置,但文件名不可修改

5. 最后启动
在这里插入图片描述

结果如图:
在这里插入图片描述

注意事项

开始使用的是 IntelliJ IDEA 2018.3.6 x64 版本,出现了如下问题:

  1. Artifact contains illegal characters
    原因:该版本中 Artifact 内容需要为小写,大写会报错。

  2. Error: Request failed with status code 500
    在这里插入图片描述
    原因:Type 选项中没有选择 Maven 。

  3. 项目创建完成后,但 pom.xml 中部分标签内容会报红,没有成功创建(尝试多种方法,暂无法解决,建议安装新版本的 IntelliJ IDEA )
    在这里插入图片描述

  4. 如果在旧版本 idea 中重新创建项目,将 Initializr Service URL 选择为 https://start.aliyun.com/ ,也会报错,暂无法成功创建 Spring Boot 项目。
    在这里插入图片描述
    原因:可能是 IntelliJ IDEA 2018 版本比较旧,不支持当前阿里云 Spring Initializr 服务的某些特性或格式。还是建议安装新版本的 IntelliJ IDEA 。新版本的 IDEA 可能已经修复了与当前 Spring Initializr 服务兼容性的问题。

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

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

相关文章

【智能算法应用】智能算法优化BP神经网络思路

目录 1.思路2.设计 1.思路 在BP神经网络结构中,权值和阈值被视为模型的参数,它们在训练过程中需要通过反向传播算法进行学习,以使得网络的输出尽可能地接近真实标签。这意味着网络的目标是通过最小化均方误差(MSE)来调…

Docker专题-03 Log-Driver日志转存

Docker专题教程 注: 本教程由羞涩梦整理同步发布,本人技术分享站点:blog.hukanfa.com 转发本文请备注原文链接,本文内容整理日期:2024-03-19 csdn 博客名称:五维空间-影子,欢迎关注 说明 容器…

echarts饼图图例换行

legend: {left: "5%",bottom: "10%",orient: vertical,}, 完整代码 option {tooltip: {trigger: item},legend: {left: "5%",bottom: "10%",orient: vertical,},// legend: [// {// x: left,// left:"5%",// bottom: …

牛客题霸-SQL进阶篇(刷题记录二)

本文基于前段时间学习总结的 MySQL 相关的查询语法,在牛客网找了相应的 MySQL 题目进行练习,以便加强对于 MySQL 查询语法的理解和应用。 由于涉及到的数据库表较多,因此本文不再展示,只提供 MySQL 代码与示例输出。 部分题目因…

贪心算法(算法竞赛、蓝桥杯)--奶牛晒衣服

1、B站视频链接&#xff1a;A28 贪心算法 P1843 奶牛晒衣服_哔哩哔哩_bilibili 题目链接&#xff1a;奶牛晒衣服 - 洛谷 #include <bits/stdc.h> using namespace std; priority_queue<int> q;//用大根堆维护湿度的最大值 int n,a,b; int tim,maxn;int main(){s…

smodin(Al工具)

一、中文官网 ​​Smodin&#xff1a;多语言写作辅助​​ &#xff08;google账号登录&#xff09; ​​https://smodin.io/zh-cn/​​ 二、具体使用 2.1 写文章 (写 5 个或更多单词、一个问题或一个长标题。标题越好&#xff0c;文章就越好) 选择语言&#xff0c;输入标题…

数据之谜:解读Facebook的用户行为

在当今数字化时代&#xff0c;社交媒体平台已经成为人们生活中不可或缺的一部分&#xff0c;而Facebook作为全球最大的社交网络之一&#xff0c;其背后隐藏着许多数据之谜。本文将深入探讨Facebook的用户行为&#xff0c;并试图解读其中的奥秘。 用户行为数据的收集 Facebook作…

初探Springboot 参数校验

文章目录 前言Bean Validation注解 实践出真知异常处理 总结 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 前言 工作中我们经常会遇到验证字段是否必填&#xff0c;或者字段的值是否…

网络工程师练习题2

网络工程师 将专用IP地址转换为公用IP地址的技术是&#xff08;&#xff09;。 A.ARPB.DHCPC.UTMD.NAT 【答案】D 【解析】概念题&#xff0c;NAT技术将源地址从内部专用地址转换成可以在外部Internet上路由的全局IP地址。 R1、R2是一个自治系统中采用RIP路由协议的两个相…

微软AI系列 C#中实现相似度计算涉及到加载图像、使用预训练的模型提取特征以及计算相似度

在C#中实现相似度计算涉及到加载图像、使用预训练的模型提取特征以及计算相似度。你可以使用.NET中的深度学习库如TensorFlow.NET来加载预训练模型&#xff0c;提取特征&#xff0c;并进行相似度计算。 以下是一个使用TensorFlow.NET的示例&#xff1a; using System; using …

十二 超级数据查看器 讲解稿 详情7 其他功能

十二 超级数据查看器 讲解稿 详情7 其他功能 点击此处 以新页面 打开B站 播放当前教学视频 点击访问app下载页面 百度手机助手 下载地址 ​ 讲解稿全文&#xff1a; 其他操作&#xff0c;主要用来完成替换和批量修改&#xff0c; 这里&#xff0c;我们想给成语字段增…

HarmonyOS系统开发ArkTS常用组件文本及参数(五)

目录 一、Text组件 1、Text组件案例 二、Text组件参数 1、string字符串类型 2、Resources类型 2.1、resources中内容配置 base/element/string.json 中的内容 zh_US/element/string.json 中的内容 es_US/element/string.json 中的内容 2.2、环境适配 适配英文 适配中文…

2022年安徽省职业院校技能大赛 (高职组)“云计算”赛项样卷

#需要资源或有问题的&#xff0c;可私博主&#xff01;&#xff01;&#xff01; #需要资源或有问题的&#xff0c;可私博主&#xff01;&#xff01;&#xff01; #需要资源或有问题的&#xff0c;可私博主&#xff01;&#xff01;&#xff01; 第一场次&#xff1a;私有云(5…

云服务器2核4g能支持多少人同时访问?腾讯云和阿里云PK

腾讯云轻量应用服务器2核4G5M配置性能测评&#xff0c;腾讯云轻量2核4G5M带宽服务器支持多少人在线访问&#xff1f;并发数10&#xff0c;支持每天5000IP人数访问&#xff0c;腾讯云百科txybk.com整理2核4G服务器支持多少人同时在线&#xff1f;并发数测试、CPU性能、内存性能、…

【HMM】Hidden Markov Model

文章目录 1 HMM 的概念1.1 引入1.1.1 Markov property1.1.2 Markov chain1.1.3 一阶离散马尔可夫模型 1.2 HMM 的定义1.3 观测序列的生成过程1.4 HMM 的 3 个基本问题 2 三个基本问题的解法2.1 概率计算算法2.1.1 直接计算法2.1.2 向前算法2.1.3 向后算法2.1.4 一些概率与期望值…

基于springboot+vue的智慧生活商城系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

反射与串扰

一、 反射 原因&#xff1a;由于AD采集端与传感器端和双绞线的阻抗不匹配而导致待测信号在AD处反射叠加&#xff1b; 解决办法&#xff1a;1、对AD采集端和炮榄传感器端进行合适于炮榄的阻抗匹配。具体来说可 以在AD采集端并联一个匹配电阻&#xff0c;电阻的阻值需要和传输线…

免费录音软件大集合,轻松录制高品质音频

“有没有免费的录音软件推荐呀&#xff1f;最近我在制作一个关于环境保护的宣传片&#xff0c;需要录制一些大自然的声音。但是我发现自己并不擅长录音&#xff0c;甚至不知道如何开始。希望有人能推荐一些免费且易用的录音软件&#xff0c;感激不尽&#xff01;” 在当今信息…

保护王国的钥匙:探索特权访问管理 (PAM) 的深度

在零信任架构的范例中&#xff0c;特权访问管理&#xff08;PAM&#xff09;正在成为网络安全策略的关键组成部分&#xff0c;旨在控制和监控组织内的特权访问。本文深入探讨了 PAM 在现代网络安全中的关键作用&#xff0c;探讨了其原理、实施策略以及特权访问的演变格局。 什么…

Czkawka重复文件查找工具

分享一款重复文件查找工具&#xff0c;Czkawka是一款简单、快速且免费的用于查找重复项、空文件夹、相似图像等的多功能的应用程序。可以从计算机中删除不必要的文件。 软件特色&#xff1a; 用内存安全的 Rust 编写&#xff0c;惊人的快 – 由于使用了或多或少的高级算法和多线…