SpringBoot的学习要点

目录

SpringBoot 

创建项目

配置文件 

注解 

命名规范

SpringBoot整合第三方技术

……


  • 中文文档:Spring Boot 中文文档 

SpringBoot 

  • Spring Boot 是基于 Spring 框架的一种快速构建微服务应用的方式
  • 它主要提供了自动配置、简化配置、运行时应用监控等功能
  • 它约定了一套项目开发规则来自动完成整个项目的配置,从而让开发人员能够简单地创建完项目就可以直接进入开发阶段
  • 优点:
    • 起步依赖(简化依赖配置)
      • parent, starter
      • 使用任意坐标时,仅书写GAV中的G和A,V由SpringBoot提供,如果发生坐标错误,再指定Version
    • 自动配置(简化常用工程相关配置)
    • 辅助功能(内置服务器……)
      • tomcat(默认):apache出口,应用面广,负载了若干较重的组件
      • jetty:更轻量级,负载性能远不及tomcat
      • undertow:负载性能勉强胜于tomcat

创建项目

  • 推荐使用Maven或Gradle来构建项目
  • 快速创建一个SpringBoot项目
    • 进入网站:Spring Initializr
    • 填写项目的各种配置信息,再添加Spring Web依赖,点击生成压缩包
    • 解压压缩包,用IDEA打开解压后得到的文件夹
    • 再修改设置里的Maven的仓库信息和使用的jdk版本,pom.xml文件等即可

配置文件 

  • 默认配置文件为application.yml或application.properties,通常只用于存储SpringBoot项目的核心配置信息
  • 存放在项目的src/main/resources目录下,该目录在SpringBoot中的抽象路径为classpath
  • 一个项目里可以有多个配置文件,可以把不同类型的配置信息存储在不同的配置文件里
  • SpringBoot提供的配置文件格式:(优先顺序:properties>yml)
    • application.properties(等号)
      •  key=value
    • application.yml(冒号后有一个空格):
      • key: value
      • yml数据读取:使用@Value读取单个数据,属性名引用方式:${一级属性名,二级属性名……}
      • yml文件内部引用属性:使用${xxx(属性名)},一变全变
        • 属性值中的转义字符需要用双引号包起
          • lesson: "Spring\tboot\nlesson"
      • 配置信息的简便用法:(把配置文件里需要的那部分信息封装成一个对象使用)
        • (1)使用@ConfigurationProperties注解绑定配置信息到封装类中
        • (2)封装类需要定义为Spring管理的bean,否则无法进行属性注入

注解 

  • SpringBoot常用注解:
  • @SpringBootApplication
    • 每一个SpringBoot项目中都有一个启动类(主类),启动类必须被@SpringBootApplication注解标注,用于启动一个SpringBoot项目的SpringBootApplication.run()方法
    • 一个项目应该只使用一次@SpringBootApplication注解
    • 其只能扫描它所在的包及其子包中的代码,如果无法被扫描到,相当于无效代码
    • SpringBoot工程运行后初始化Spring容器,扫描引导类所在的包加载bean
  • Bean
    • Bean指的是由SpringBoot容器管理的对象
    • 依赖关系:一个对象中需要用到另外一个对象
    • 依赖注入:SpringBoot在创建一个对象时,会根据“依赖关系”,把这个对象依赖的对象注入其中
    • Bean的注册:SpringBoot自动寻找开发人员已经创建好的Bean,并将其保存在SpringBoot容器中
    • Bean的注入:把SpringBoot容器中的Bean赋值给某个尚未被赋值的成员变量
    • Bean的获取:
      • 在类中创建一个属性,通过为属性添加注解,让SpringBoot为这个属性注入Bean
      • @Autowired
      • @Resource
      • @Value
    • 当SpringBoot项目被启动时,SpringBoot先会自动扫描所有的组件,然后注册所有的Bean,把这些Bean注入各自的使用场景中
  • 组件
    • 要想让@Bean生效,那么被标注的方法所在的类必须有下列其中一个的注解,以便被SpringBoot的组件扫描器扫描到
    • @Configuration
    • @Controller
    • @Service
    • @Repository
    • @Component
    • @Import:将@Bean所在类主动注册给SpringBoot

命名规范

  • 包的命名

    • 风格一:以业务场景进行分类

      • 比如与登录有关的都放到login包下

    • 风格二:以功能模块进行分类

      • 比如负责页面跳转的Controller都放到controller包下

    • 常见分类:

      • 配置包:config / configuration,存放被@Configuration标注的类

      • 公共类包:common,存放供其他模块使用的组件、工具、枚举等代码

        • component:存放被@Component标注的类

        • utils / tools:存放工具类

        • constant:存放常量类

      • 控制器包:control / controller

      • 服务包:service,存放所有实现业务的服务类

        • impl:存放所有实现业务的服务接口

      • 数据库访问接口包

        • dao,存放用于操作数据库的代码

        • mapper,项目使用MyBatis作为持久层框架

      • 数据实体包

        • pojo,项目使用SSH(Spring+Struts+Hibernate)整合框架

        • model,项目使用SSM(Spring+SpringMVC+MyBatis)整合框架

        • entity,项目使用MyBatis框架

      • 过滤器包:filter

      • 监听器包:listener

  • Java文件命名 

    • 使用“驼峰命名法”:除了第一个单词,后面每个单词的首字母都大写,其他字母小写,单词之间没有下划线
    • 以“业务+模块”的方式命名,比如LoginController
    • 常见命名方式:
      • 控制器类:以Control或Controller结尾
      • 服务接口 / 类:以Service结尾
      • 接口的实现类:以Impl结尾
      • 工具类:以Util结尾
      • 配置类:以Config或Configuration结尾
      • 组件类:以Component结尾
      • 枚举:以Enum结尾
      • 实体类:
        • 名字必须是名词
        • 常见后缀名:
          • PO:持久层对象,persistent object
          • DO:数据对象, data object
          • DTO:数据传输对象, data transfer object
          • BO:业务对象, business object
          • VO:显示层对象, view object
          • POJO:简易的Java对象,plain,ordinary java object

SpringBoot整合第三方技术

  • SpringBoot—— MyBatis
  • SpringBoot—— Redis
  • SpringBoot—— RabbitMQ
  • SpringBoot—— Thymeleaf
  • ……
  • 学完SpringBoot基础框架知识后,SpringBoot整合其他技术是重难点,用到什么学什么,大体思路不要乱即可

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

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

相关文章

大水文之------端午练练JS好了

最近有点不太知道要干啥了,昨天看了集cocos的介绍,下载了个DashBoard,看了看里面的内容,确实有点小震惊,还有些免费的源码可以学习,挺好的。 昨天学习ts,感觉自己的js水平好像不太行&#xff0c…

Functional ALV系列 (10) - 将填充FieldCatalog封装成函数

在前面的博文中,已经讲了封装的思路和实现,主要是利用 cl_salv_data_descr>read_structdescr () 方法来实现。在这里,贴出代码方便大家参考。 编写获取内表组件的通用方法 form frm_get_fields using pt_data type any tablechanging…

C++期末复习提纲(血小板)

目录 1.this指针 2.静态成员变量 3.面向对象程序设计第一阶段 4.面向对象程序设计第二阶段 5.面向对象程序设计第三阶段 6.简答题 (1)拷贝构造函数执行的三种情况: (2)虚析构函数的作用: &#xff…

Python基础——字符串

一、Python的字符串简介 Python中的字符串是一种计算机程序中常用的数据类型【可将字符串看作是一个由字母、数字、符号组成的序列容器】,字符串可以用来表示文本数据。 通常使用一对英文的单引号()或者双引号(")…

html接口响应断言

接口响应值除类json格式,还有html格式 断言步骤 第一步:替换空格replace 原本返回的格式和网页内容一致,每行前面有很多空格,需要去除这些空格 第二步:分割split 因为行与行之前有回车符,所以把回车符替…

Spring之SpringMVC源码

SpringMVC源码 一、SpringMVC的基本结构 1.MVC简介 以前的纯Servlet的处理方式: Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String type req.getParameter(Constant.REQUEST_PA…

【Java面试】十六、并发篇:线程基础

文章目录 1、进程和线程的区别2、并行和并发的区别3、创建线程的四种方式3.1 Runnable和Callable创建线程的区别3.2 线程的run和start 4、线程的所有状态与生命周期5、新建T1、T2、T3,如何保证线程的执行顺序6、notify和notifyAll方法有什么区别7、wait方法和sleep方…

QT-轻量级的笔记软件MyNote

MyNote v2.0 一个轻量级的笔记软件📔 Github项目地址: https://github.com/chandlerye/MyNote/tree/main 应用简介 MyNote v2.0 是一款个人笔记管理软件,没有复杂的功能,旨在提供便捷的笔记记录、管理以及云同步功能。基于Qt 6.6.3 个人开…

MATLAB入门知识

目录 原教程链接:数学建模清风老师《MATLAB教程新手入门篇》https://www.bilibili.com/video/BV1dN4y1Q7Kt/ 前言 历史记录 脚本文件(.m) Matlab帮助系统 注释 ans pi inf无穷大 -inf负无穷大 i j虚数单位 eps浮点相对精度 0/&a…

Edge浏览器视频画中画可拉动进度条插件Separate Window

平时看一些视频的时候,一般需要编辑一些其他的东西,于是开启画中画,但是画中画没有进度条,需要大幅度的倒退前进得回到原视频,很麻烦。这里推荐插件Separate Window,可实现画中画进度条拉动和播放sudu的调节…

Transparent 且 Post-quantum zkSNARKs

1. 引言 前序博客有: SNARK原理示例SNARK性能及安全——Prover篇SNARK性能及安全——Verifier篇 上图摘自STARKs and STARK VM: Proofs of Computational Integrity。 上图选自:Dan Boneh 斯坦福大学 CS251 Fall 2023 Building a SNARK 课件。 SNARK…

工业通讯现场中关于EtherCAT转TCPIP网关的现场应用

在当今工业自动化的浪潮中,EtherCAT技术以其高效、实时的特性成为了众多制造业的首选。然而,随着工业互联网的发展,对于数据的远程访问和云平台集成的需求日益增长,这就需要将EtherCAT协议转化为更为通用的TCP/IP协议。于是开疆智…

kafka-消费者-消费异常处理(SpringBoot整合Kafka)

文章目录 1、消费异常处理1.1、application.yml配置1.2、注册异常处理器1.3、消费者使用异常处理器1.4、创建生产者发送消息1.5、创建SpringBoot启动类1.6、屏蔽 kafka debug 日志 logback.xml1.7、引入spring-kafka依赖1.8、消费者控制台:1.8.1、第一次启动SpringK…

日进2000,我怎么做到的

昨天遇到一个有意思的项目,让我一天进账2000,一个字:爽。 这几天接洽了一位新客户,主要诉求就是优化系统,基于LNMP的系统优化。正好这个领域我比较熟悉,以前都是在公司做项目,也不怎么涉猎系统优…

HCIP-Datacom-ARST自选题库_10_其他判断【23道题】

1.端到端时延等于路径上所有处理时延与队列时延之和。 2.部署PPP Multilink之后,数据将根据源地址和目的地址均匀的分配在各条成员链路上。 3.流镜像分为本地流镜像和远程流镜像两种方式。√ 4.IP报文中用Tos字段进行Q0S标记,Tos字段中是使用前6bit来…

知识图谱的应用---智能电网

文章目录 智能电网典型应用 智能电网 智能电网以物理电网为基础,将现代先进的传感测量技术、通讯技术、信息技术、计算机技术和控制技术与物理电网高度集成而形成的新型电网。它以充分满足用户对电力的需求和优化资源配置、确保电力供应的安全性、可靠性和经济性、满…

2024.6.9 四

Python的异常处理 在python里,错误和异常是不同的概念 错误: Python 的语法错误或者称之为解析错,大多是因为写代码写错了出现的 异常: 即便 Python 程序的语法是正确的,在运行它的时候,也有可能发生错误。运行期检测到的错误被称为异常。 大多数的异常…

Ajax 快速入门

Ajax 概念:Ajax是一种Web开发技术,允许在不重新加载整个页面的情况下,与服务器交换数据并更新网页的部分内容。 作用: 数据交换:Ajax允许通过JavaScript向服务器发送请求,并能够接收服务器响应的数据。 异…

STM32H750启动和内存优化(分散加载修改)

前些日子有个朋友一直给我推荐STM32H750这款芯片,说它的性价比,说它多么多么好。于是乎,这两天试了试,嚯,真香!我们先看看基本配置 这里简单总结下,cortex-m7内核,128k片内flash …

HTML-CSS练习例子

HTML CSS 练习 https://icodethis.com 作为前端练习生。不敲代码只看,入门是很慢的,所以直接实战是学习前端最快的途径之一。 这个网站练习HTML CSS的,可以打开了解一下,可以每天打卡,例子简单,循序渐进&…