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的父项目中已经定义了一系列常用的依赖版本,子项目继承这些版本信息,使得我们不需要手动去指定版本号。这样可以确保版本的兼容性和统一性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小猿--

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值