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

SpringBoot项目学习笔记

第一章

  1. SpringBoot有哪些优点?

    Spring Boot作为Java开发的框架和工具集,具有许多优点,这些优点有助于简化开发过程并提高效率。以下是一些主要的优点:

    1. 简化配置: Spring Boot采用约定优于配置的原则,通过自动配置和默认值,减少了开发人员的配置工作,使项目配置更加简洁。

    2. 快速开发: Spring Boot提供了快速构建项目的能力,内嵌了常用的容器,如Tomcat,无需手动配置。

    3. 自动配置: Spring Boot可以根据项目的依赖自动配置应用程序的各个组件,减少了手动配置的工作。

    4. 微服务支持: Spring Boot为构建微服务架构提供了很多支持,例如可以轻松创建RESTful API和分布式系统。

    5. 内嵌服务器: Spring Boot内置了常用的Web服务器,如Tomcat、Jetty和Undertow,使得部署变得更加简单。

    6. 自动化任务: Spring Boot支持定时任务和调度,可以方便地进行后台任务的管理和执行。

    7. 开发生态系统: Spring Boot集成了丰富的第三方库和插件,如Spring Security、Spring Data等,方便开发者使用。

    8. 健康监控: Spring Boot提供了健康检查和监控的功能,可以方便地监测应用程序的状态。

    9. 简化Maven/Gradle配置: Spring Boot提供了一些约定,使得构建工具的配置更加简单,同时可以自动生成依赖的版本号。

    10. 大量的社区支持: Spring Boot有庞大的社区支持,可以找到大量的文档、教程和解决方案。

    总的来说,Spring Boot通过减少繁琐的配置和提供丰富的功能,使得Java开发变得更加高效、便捷,特别适合构建现代化的应用程序和微服务。

  2. SpringBoot为什么能直接运行?

    SpringBoot 能够直接运行的原因在于它内置了嵌入式容器,并且自动配置了许多常用的组件和依赖,使得应用程序可以独立运行,不需要外部环境的支持。

  3. 列一下常见的git命令(你都用过哪些命令)?或具体到某个命令的用法,如:怎么从远程仓库把代码取下来?

    常见的Git命令包括:

    1. git init: 初始化一个新的Git仓库。
    2. git clone: 从远程仓库克隆代码到本地。
    3. git add: 将文件添加到暂存区,准备提交。
    4. git commit: 提交暂存区的更改到本地仓库。
    5. git push: 将本地提交推送到远程仓库。
    6. git pull: 从远程仓库拉取代码到本地,并自动合并。
    7. git fetch: 从远程仓库获取最新的代码,但不进行合并。
    8. git branch: 查看、创建、删除分支。
    9. git checkout: 切换分支或还原文件到之前的状态。
    10. git merge: 合并分支到当前分支。
    11. git rebase: 将一系列提交合并成一个,可用于优化提交历史。
    12. git log: 查看提交历史。
    13. git status: 查看工作区和暂存区的状态。
    14. git remote: 管理远程仓库。
    15. git config: 配置Git参数,如用户名、邮箱等。

    关于从远程仓库获取代码的具体步骤,可以使用以下命令:

    1. 克隆仓库: 使用git clone命令从远程仓库克隆代码到本地。例如:

      git clone <远程仓库URL>
      
    2. 拉取最新代码: 如果已经克隆了仓库,可以使用git pull命令拉取最新代码到本地分支。例如:

      git pull origin <分支名>
      
    3. 获取最新代码但不合并: 如果只是想获取最新代码,但不自动合并到当前分支,可以使用git fetch命令。例如:

      git fetch origin <分支名>
      
  4. SVN和Git用起来有什么区别,你推荐哪一个?

    SVN(Subversion)和Git都是版本控制系统,用于管理和跟踪项目代码的变化。它们在工作方式、使用方式和特性上有一些区别。以下是一些主要的区别以及我为什么会倾向于推荐Git:

    1. 分布式 vs 集中式:

    • Git是一种分布式版本控制系统,每个开发者都可以在本地拥有完整的代码库,可以离线工作,进行更灵活的分支管理。
    • SVN是一种集中式版本控制系统,代码库存储在中央服务器上,开发者需要实时连接服务器来操作,分支管理相对较复杂。

    2. 本地操作:

    • Git在本地存储完整的版本历史,因此大部分操作可以在本地完成,速度更快,无需频繁网络交互。
    • SVN需要在服务器上进行操作,需要网络连接,速度相对较慢。

    3. 分支和合并:

    • Git的分支和合并非常高效,因为每个分支实际上是一个独立的代码库,合并也是本地操作。
    • SVN的分支和合并相对复杂,涉及到服务器操作,可能需要解决冲突。

    4. 整个历史记录:

    • Git存储每个版本的快照,使得查看和回溯历史更加方便。
    • SVN存储每次提交的差异,导致查看历史时可能需要较多的网络请求。

    5. 社区和生态系统:

    • Git拥有庞大的社区和丰富的工具、扩展和服务(如GitHub、GitLab等)。
    • SVN的社区相对较小,工具和服务相对有限。

    推荐:
    我更倾向于推荐Git,因为它的分布式特性、快速的操作、高效的分支管理和强大的生态系统使其成为现代软件开发的首选。Git适用于个人开发者、团队合作和大型项目。然而,对于特定项目或团队的特殊需求,SVN可能仍然是一个合适的选择。最终选择应该基于项目和团队的需求,以及开发者对版本控制系统的熟悉程度。

  5. logback日志级别都有哪些?

    以下是 Logback 提供的标准日志级别:

    1. TRACE(跟踪): 用于记录最详细的日志信息,通常用于追踪程序的执行流程。对于开发和调试非常有用,但在生产环境中通常会禁用,因为会产生大量的输出。

    2. DEBUG(调试): 用于记录调试信息,帮助开发人员诊断问题。在开发和测试阶段使用,但在生产环境中通常会减少其输出。

    3. INFO(信息): 用于记录重要的运行时信息,如应用程序的主要执行步骤、配置变更等。适用于生产环境,帮助管理员监控应用程序。

    4. WARN(警告): 用于记录潜在的问题,不会导致应用程序停止或崩溃,但可能需要注意和处理的情况。

    5. ERROR(错误): 用于记录发生的错误,可能导致应用程序异常终止或无法正常运行的情况。

    6. OFF: 最高级别,用于关闭日志输出。

    7. ALL: 最低级别,用于启用所有日志输出。

  6. slf4j, logback, log4j是什么关系?
    slf4j不是一个真正意义的可用应用程序,他是一个接口层
    就像java 的接口性质一样,单纯集成了slf4j 的话,执行比如log.info log.debug等方法,只能在控制台打印日志,并不会在持久化到文件,或者其他自定义介质上,slf4j至少需要一个实现层框架,比如log4j,logback等

  7. 列举出常见的http请求方式
    提示:参考2-6 开发Hello World接口

    1. GET: 用于从服务器获取数据。GET 请求将参数附加在URL的查询字符串中,并在服务器响应中返回请求的数据。
    2. POST: 用于向服务器提交数据。POST 请求将数据放在请求体中,适用于提交表单数据、JSON 数据等。
    3. PUT: 用于向服务器更新资源。PUT 请求通常用于更新现有资源,将数据放在请求体中。
    4. DELETE: 用于请求服务器删除指定的资源。
  8. 怎么读取自定义的配置项?用什么注解?怎么设置默认值?

    @Value(“${test.hello:HELLO}”)

  9. bootstrap和application配置有什么区别?

    bootstrap.properties和application.properties是SpringBoot中的两个配置文件。bootstrap.properties用在应用程序启动之前加载,它通常用于配置一些启动阶段需要的属性。application.properties则包含了应用程序的配置信息。

    SpringBoot会自动识别下面这组配置文件
    application.properties/yml
    config/application.properties/yml
    如果是SpringCloud,还会自动识别下面这组配置文件
    bootstrap.properties/yml
    config/bootstrap.properties/yml

  10. 为什么引入SpringBoot内置依赖不需要加版本号?

    引入SpringBoot内置依赖不需要加版本号是因为SpringBoot的父项目中已经定义了一系列常用的依赖版本,子项目继承这些版本信息,使得我们不需要手动去指定版本号。这样可以确保版本的兼容性和统一性。

相关文章:

SpringBoot项目学习笔记

第一章 SpringBoot有哪些优点&#xff1f; Spring Boot作为Java开发的框架和工具集&#xff0c;具有许多优点&#xff0c;这些优点有助于简化开发过程并提高效率。以下是一些主要的优点&#xff1a; 简化配置&#xff1a; Spring Boot采用约定优于配置的原则&#xff0c;通过自…...

如何在Vue表单处理中实现表单字段的文件下载

Vue.js 是一种流行的JavaScript框架&#xff0c;用于构建用户界面。在Vue应用中&#xff0c;我们经常需要处理表单操作&#xff0c;其中一个常见需求是实现文件下载。以下介绍如何在Vue表单处理中实现表单字段的文件下载&#xff0c;大家共同交流。 一、使用HTML的a标签实现文…...

SSL证书DV和OV的区别?

SSL证书是在互联网通信中保护数据传输安全的一种加密工具。它能够确保客户端和服务器之间的通信得以加密&#xff0c;防止第三方窃听或篡改信息。在选择SSL证书时&#xff0c;常见的有DV证书和OV证书&#xff0c;它们在验证标准和信任级别上有所不同。那么SSL证书DV和OV的有哪些…...

计算机竞赛 GRU的 电影评论情感分析 - python 深度学习 情感分类

1 前言 &#x1f525;学长分享优质竞赛项目&#xff0c;今天要分享的是 &#x1f6a9; GRU的 电影评论情感分析 - python 深度学习 情感分类 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;4分 这…...

论文阅读 - Neutral bots probe political bias on social media

论文链接&#xff1a;Neutral bots probe political bias on social media | EndNote Click 试图遏制滥用行为和错误信息的社交媒体平台被指责存在政治偏见。我们部署中立的社交机器人&#xff0c;它们开始关注 Twitter 上的不同新闻源&#xff0c;并跟踪它们以探究平台机制与用…...

Fabric系列 - 知识点整理

知识点 源码编译 主机编译 容器编译 手动部署(docker-compose) 单peer 多peer 中途加peer 多主机多peer 链码 语法, 接口 (go版) 命令行调用 ca server 在DApp中使用SDK调用 (js版) 部署的几个阶段 部署1排序和1节点, 1组织1通道 光部署能Dapp 带ca server (每个组织一个)…...

多目标优化算法之樽海鞘算法(MSSA)

樽海鞘算法的主要灵感是樽海鞘在海洋中航行和觅食时的群聚行为。相关文献表示&#xff0c;多目标优化之樽海鞘算法的结果表明&#xff0c;该算法可以逼近帕雷托最优解&#xff0c;收敛性和覆盖率高。 通过给SSA算法配备一个食物来源库来解决第一个问题。该存储库维护了到目前为…...

阿里云轻量应用服务器使用教程_创建配置_远程连接_网站上线

阿里云轻量应用服务器怎么使用&#xff1f;阿里云百科分享轻量应用服务器从选择创建、配置建站环境、轻量服务器应用服务器远程连接、开端口到网站上线全流程&#xff1a; 目录 阿里云轻量应用服务器使用教程 步骤一&#xff1a;购买一台轻量应用服务器 步骤二&#xff1a;…...

自监督学习的概念

Self-Supervised Learning (SSL)的主要思想是解决先验任务来学习特征提取器&#xff0c;在不使用标签的情况下生成有用的表示。 这里先验任务是指&#xff0c; 先使用原始数据和特征提取器来提取出 数据的有效表示&#xff0e; 对比方法(即对比学习&#xff0c; Contrastiv…...

C#多线程开发详解

C#多线程开发详解 持续更新中。。。。。一、为什么要使用多线程开发1.提高性能2.响应性3.资源利用4.任务分解5.并行计算6.实时处理 二、多线程开发缺点1.竞态条件2.死锁和饥饿3.调试复杂性4.上下文切换开销5.线程安全性 三、多线程开发涉及的相关概念常用概念(1)lock(2)查看当前…...

Linux 基础篇(六)sudo和添加信任用户

一、sudo 1.是什么&#xff1f; 给被信任的普通用户授权&#xff0c;让被信任的普通用户能执行root用户才能执行的命令的一个命令。 2.为什么&#xff1f; 很多时候我们要在被信任的普通用户下执行一些root用户才能执行的命令&#xff0c;如 yum… 所以需要有一个命令能给普通用…...

【Linux】程序地址空间

程序地址空间 首先引入地址空间的作用什么是地址空间为什么要有地址空间 首先引入地址空间的作用 1 #include <stdio.h>2 #include <unistd.h>3 #include <stdlib.h>4 int g_val 100;6 int main()7 {8 pid_t id fork();9 if(id 0)10 {11 int cn…...

springboot 设置自定义启动banner背景图 教程

springboot banner Spring Boot中的banner是在应用程序启动时显示的一个ASCII艺术字符或文本。它被用来给用户展示一些关于应用程序的信息&#xff0c;例如名称、版本号或者公司标志等。 使用Spring Boot的默认设置&#xff0c;如果项目中有一个名为“banner.txt”的文件放置…...

CSS的引入方式有哪些?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 内联样式&#xff08;Inline Styles&#xff09;⭐ 内部样式表&#xff08;Internal Stylesheet&#xff09;⭐ 外部样式表&#xff08;External Stylesheet&#xff09;⭐ 导入样式表&#xff08;Import Stylesheet&#xff09;⭐ 写在最…...

.net core的Knife4jUI,让swagger更精致

要在 .NET Core 中使用 IGeekFan.AspNetCore.Knife4jUI&#xff0c;您可以按照以下步骤进行配置&#xff1a; 首先&#xff0c;安装 IGeekFan.AspNetCore.Knife4jUI NuGet 包。可以通过 Visual Studio 的 NuGet 包管理器或者 .NET CLI 进行安装。 在 Startup.cs 文件的 Config…...

Android 开发中需要了解的 Gradle 知识

作者&#xff1a;wkxjc Gradle 是一个基于 Groovy 的构建工具&#xff0c;用于构建 Android 应用程序。在 Android 开发中&#xff0c;了解 Gradle 是非常重要的&#xff0c;因为它是 Android Studio 默认的构建工具&#xff0c;可以帮助我们管理依赖项、构建应用程序、运行测试…...

Linux之【进程间通信(IPC)】-总结篇

Linux之【进程间通信&#xff08;IPC&#xff09;】-总结篇 管道System V共享内存System V消息队列System V信号量IPC资源的管理方式 往期文章 1.进程间通信之管道 2.进程间通信之System V共享内存 管道 进程之间具有独立性&#xff0c;拥有自己的虚拟地址空间&#xff0c;因…...

C++QT教程3——手册4.11.1自带教程(笔记)——创建一个基于Qt Widget的应用程序

文章目录 创建一个基于Qt Widget的应用程序创建Text Finder项目素材文件 填补缺失的部分设计用户界面完成头文件完成源文件创建资源文件 编译和运行程序 参考文章 创建一个基于Qt Widget的应用程序 本教程介绍如何使用Qt Creator创建一个小型Qt应用程序&#xff0c;名为Text F…...

手机商城网站的分析与设计(论文+源码)_kaic

目录 摘 要 1 1 绪论 2 1.1选题背景意义 2 1.2国内外研究现状 2 1.2.1国内研究现状 2 1.2.2国外研究现状 3 1.3研究内容 3 2 网上手机商城网站相关技术 4 2.1.NET框架 4 2.2Access数据库 4 2.3 JavaScript技术 4 3网上手机商城网站分析与设…...

vue2 封装 webSocket 开箱即用

第一步&#xff1a; 下载 webSocket npm install vue-native-websocket --save 第二步&#xff1a; 需要在 main.js 中 引入 import websocket from vue-native-websocket; Vue.use(websocket, , {connectManually: true, // 手动连接format: json, // json格式reconnection:…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作&#xff1a;验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化&#xff1a;测试aof和aof持久化机制&#xff0c;确保数据在开启后正确恢复。 事务&#xff1a;检查事务的原子性和回滚机制。 发布订阅&#xff1a;确保消息正确传递。 2、性…...

微服务通信安全:深入解析mTLS的原理与实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言&#xff1a;微服务时代的通信安全挑战 随着云原生和微服务架构的普及&#xff0c;服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...

Linux 下 DMA 内存映射浅析

序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存&#xff0c;但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程&#xff0c;可以参考这篇文章&#xff0c;我觉得写的非常…...

何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡

何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡 背景 我们以建设星云智控官网来做AI编程实践&#xff0c;很多人以为AI已经强大到不需要程序员了&#xff0c;其实不是&#xff0c;AI更加需要程序员&#xff0c;普通人…...

【51单片机】4. 模块化编程与LCD1602Debug

1. 什么是模块化编程 传统编程会将所有函数放在main.c中&#xff0c;如果使用的模块多&#xff0c;一个文件内会有很多代码&#xff0c;不利于组织和管理 模块化编程则是将各个模块的代码放在不同的.c文件里&#xff0c;在.h文件里提供外部可调用函数声明&#xff0c;其他.c文…...