11-28 SpringBoot1

约定大于配置

简化Spring开发,
spring boot致力于简洁,让开发者写更少的配置,程序能够更快的运行和启动。它是下一代javaweb框架,并且它是spring cloud(微服务)的基础。dev-ops:开发者,运维者。

springboot特点:优点面试重点
1)为基于Spring的开发提供更快的入门体验
2)开箱即用,没有代码生成,也无需XML配置。同时也可以修改默认值来满足特定的需求
3)提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等
4) SpringBoot不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式

 Springboot核心功能:
起步依赖(简化依赖配置)
起步依赖本质上是一个Maven项目对象模型(Project object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。
自动配置(简化常用工程相关配置)
Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。该过程是Spring自动完成的。
辅助功能(内置服务器,.....)
除了上面的功能,其实SpringBoot程序还有其他的一些优势,比如我们没有配置Tomcat服务器,但是能正常运行,这是SpringBoot入门程序中一个可以感知到的功能,
也是SpringBoot的辅助功能之一。—个辅助功能都能做的这么6,太牛了。

所有的版本springboot官方文档: https://docs.spring.io/spring-boot/docs/

SpringBoot入门程序

1.使用maven(无网也可以,但是项目结构多一点 启动类 配置文件需要手动去创建)

3.使用Spring initializr创建

生成项目的JVM

依赖选择

springweb/lombok

 

阿里云仓库缺失!!!!!!!!!!

你不需要tomcat启动程序

使用maven搭建springboot项目

maven -> 添加springboot父项目 

2.添加相关依赖: web-starter
springboot官方的starter命名规范:spring-boot-starter-名字
比如web-starter: spring-boot-starter-web

添加springboot-maven-plugin

指定jdk版本

<properties>

        <java.version>1.8</version>

</properties>

程序的入口,包含一个main方法,一般放在父包下,其他类位于子包

Spring容器对象 :ApplicationContext

在src/main/resources目录创建一个application.properties/application.yml springboot主配置文件src/main/resources目录创建一个static目录, static目录存放静态资源,该static目录下的资源可以通过浏览器直接访问
在src/main/resources目录创建一个templates目录,templates目录存放动态资源,该templates目录下的资源无法通过浏览器直接访问,只能通过处理器转发的方式,类似WEB-INF目录下的资源**

如果是前后台分离项目,static,templates不需要创建

单体映射建议使用这种方式创建springboot项目(就一个模块进行开发)

但是多模块maven开发建议使用第一种方式

原理:

父项目:spring-boot-starter-parent,打包方式: pom

子项目pom文件继承父项目pom文件的配置

springboot版本制定了,其他技术的版本也会统一确定

使用parent可以帮助开发者进行依赖版本的统一管理(真正做的是父项目的父项目)

在多模块开发中,假如其中的模块有

xxx-parent

xxx-common

xxx-user

xxx-order

xxx-web(基于springBoot开发)

缺点:xxox-parent所有的子模块都基于springboot开发

把springboot

的版本控制拿过来  不用继承、直接导入

拿我们的项目继承父项目/导入

maven是依赖的传递

starter:
starter定义了使用某种技术时对于依赖的固定搭配格式,也是一种最佳解决方案,使用starter可以帮助开发者减少依赖配置。

parent -> 不可以放,打包方式是pom

starter -> 可以放一些公共代码,打包方式是jar

starter与parent的区别
朦朦胧胧中感觉starter与parent好像都是帮助我们简化配置的,但是功能又不一样,梳理一下。starter是一个坐标中定了若干个坐标,以前写多个的,现在写一个,是用来减少依赖配置的书写量的。
parent是定义了儿曰11依利中内减小休都冲突的。理,这样就不存在版本冲突了,是用来减少依赖冲突的。

有starter优先使用starter

如果想覆盖版本,直接在依赖后面使用version覆盖,也可以使用Properties覆盖版本属性

启动类:

一个main方法,为什么启动我们的项目了呢?

一个是我们的核心注解

一个是我们的运行方法run()

核心注解:

其实她是一个组合注解 

启动类也是一个配置类 主配置类

看源码回退    A C <- 

EnableAutoConfiguration:开启自动配置

SpringBoot框架中,提供了很多场景下的配置类,100多个配置类,在程序启动的时候,按需加载

配置类,让这些配置类生效

导入注释(EnableAutoconfiguration.java interface)

指定那些类是配置类的选择器      -> selector

run方法

最终给我加在的配置只有这些(单例池)

为什么没有用到的类没有加载出来 怎么做到呢?  -> 条件注解

面试:

扫描所有依赖下的MeTA/INF下的包下的类  Enable

根据每一个类的con

配置上有个半年多conditioanl注解  有没有符合条件的类

所有的相关配置类从你添加的依赖中产生 ,为因果关系  没加以来 依赖 对应的配置类就不生效

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

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

相关文章

C++学习专栏【基础知识1】C++程序结构命名空间关键字标识符三字符序列

一、C程序结构 让我们看一个简单的代码&#xff0c;它将打印Hello World一词。 #include <iostream> using namespace std; int main() {cout << "Hello World"; // prints Hello Worldreturn 0; } C语言定义了几个头文件&#xff0c;其中包含对你的程序…

系统部署安装-Centos7-Kafka

文章目录 安装离线安装下载安装 安装 离线安装 下载 可以前往kafka的官网进行下载 https://kafka.apache.org/downloads安装 1.创建安装目录 mdkir /opt/software/kafka mkdir /opt/kafka 2.解压 sudo tar -xzf kafka_2.12-3.6.0.tgz -C /opt/kafka --strip-components…

c语言编程题经典100例——(46~50例)

1、实现字符串转数字。 在C语言中&#xff0c;可以使用库函数atoi()将字符串转换为整数。该函数接受一个字符串作为参数&#xff0c;并返回对应的整数值。以下是一个示例代码&#xff1a; #include <stdio.h> #include <stdlib.h> int main() { char str[] …

操作符keyof的作用是什么?

keyof 是 TypeScript 中的一个操作符&#xff0c;用于获取一个类型&#xff08;通常是一个对象类型或接口&#xff09;的所有公共属性名组成的字符串字面量联合类型。它常常用于类型安全的属性访问和映射类型的定义。 什么时候使用 keyof&#xff1f; 类型安全的属性访问&…

Java | 数据一致性校验遇到的时间序列化格式不一致问题如何解决?

关注&#xff1a;CodingTechWork 需求 设计 在开发过程中&#xff0c;有数据一致性校验需求。如下设计&#xff1a; 对于一些安全数据进行加密处理&#xff0c;并将这个加密值进行存储。当再次查询时&#xff0c;对当前数据进行加密并比对之前的加密值&#xff0c;看是否一…

ardupilot开发 --- 机载计算机 篇

0. 前言 关于机载计算机&#xff1b; 1. APSync 说到机载计算机Companion computer就不得不提另一个关键词APSync&#xff1b;APSync简化了机载计算机的设置&#xff0c;以便它可以为ArduPilot提供额外的功能&#xff0c;并简化与互联网服务的集成&#xff1b;提供日志下载和…

6、单片机与AT24C02的通讯(IIC)实验(STM32F407)

IIC简介 I2C(IIC,Inter&#xff0d;Integrated Circuit),两线式串行总线,由PHILIPS公司开发用于连接微控制器及其外围设备。 它是由数据线SDA和时钟SCL构成的串行总线&#xff0c;可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送&#xff0c;高速IIC总线一般可达…

如何使用简单的分支策略来保护您的 Git 项目

良好的分支策略可以使项目源代码获得一致且安全的数据&#xff0c;所有协作者可以在更短的生命周期内共享和访问这些数据。 您必须以灵活的方式设计项目模型&#xff0c;以便对所有成员角色和权限进行良好的管理。 我要谈论的并没有什么令人惊讶的新鲜事。您可能已经知道一些…

在idea中写sql语句,向数据库添加数据时,添加的字符串却显示???,解决方法

这是字符编码的问题 如何解决&#xff1a; 在idea的配置数据库的地方修改下边&#xff1a;mysql8版本和5版本差距不大。 在URL后加?useUnicodetrue&characterEncodingUTF8 例如 原来&#xff1a;String url “jdbc:mysql://localhost:3306/stu”; 改变后&#xff1a;St…

利用ARCGIS做地下水脆弱性评价分析

&#xff08;一&#xff09;行政边界数据、土地利用数据和土壤类型数据 本文所用到的河北唐山行政边界数据、土地利用数据和土壤类型数据均来源于中国科学院资源环境科学与数据中心&#xff08;https://www.resdc.cn/Default.aspx&#xff09;。 &#xff08;二&#xff09;地…

hadoop完全分布式搭建

文章目录 集群部署规划服务器准备Mobaxterm 远程登录实验前准备安装软件工具关闭防火墙 安装 JDK 和 Hadoop创建软件包目录解压软件包配置环境变量 集群搭建先创建 HDFS 工作目录和 LOG 目录配置集群配置环境配置 HDFS 主节点信息、持久化和数据文件的主目录配置 HDFS 默认的数…

技巧-GPU显存和利用率如何提高和batch_size/num_works等参数的实验测试

目录 简介实验测试显存占用问题GPU占用率波动问题num_work不是越大越好 总结 本专栏为深度学习的一些技巧,方法和实验测试,偏向于实际应用,后续不断更新,感兴趣童鞋可关,方便后续推送 简介 在PyTorch中使用多个GPU进行模型训练时&#xff0c;各个参数和指标之间存在一定的关系…

three.js结合vue

作者&#xff1a;baekpcyyy&#x1f41f; 1.搭建环境 ps&#xff1a;这里要按照node.js在之前有关vue搭建中有介绍 新建文件夹并在vsc终端中打开 1.输入vite创建指令 npm init vitelatest然后我们cd进入刚才创建的目录下 npm install安装所需依赖 npm run dev启动该项目 …

LLVM学习笔记(63)

4.4.3.3.2.3. 向量操作数类型的处理 下面开始处理向量类型。在默认情形下这些操作都会拆分为更小的操作或者调用库。 X86TargetLowering::X86TargetLowering&#xff08;续&#xff09; 667 // Some FP actions are always expanded for vector types. 668 for…

全栈软件开发工程师需要具备哪些技能

全栈软件开发工程师需要具备前端、后端和数据库等多方面的技能&#xff0c;以便能够在整个应用开发周期中承担各种任务。以下是典型的全栈软件开发工程师的技能栈&#xff1a; 一、前端技能&#xff1a; 1.HTML/CSS/JavaScript: 构建网页的基本技能&#xff0c;负责页面结构、样…

前端笔记:React的form表单全部置空或者某个操作框置空的做法

原创/朱季谦 在React框架前端开发中&#xff0c;经常会有弹出框的开发&#xff0c;涉及到弹出框&#xff0c;难免就会有表单。一般在关闭弹出框或者对表单联动时&#xff0c;往往都需要考虑对表单进行置空操作了。 我以前在工作就遇到过这类问题&#xff0c;正好顺便对表单置空…

【UE】中文字体 发光描边材质

效果 步骤 1. 先将我们电脑中存放在“C:\Windows\Fonts”路径下的字体导入UE 点击“全部选是” 导入成功后如下 2. 打开导入的“SIMSUN_Font”&#xff0c;将字体缓存类型设置为“离线” 点击“是” 这里我选择&#xff1a;宋体-常规-20 展开细节面板中的导入选项 勾选“使用距…

【投稿优惠、可EI检索】2024年机器人学习与自动化算法国际学术会议(IACRLAA 2024)

2024年机器人学习与自动化算法国际学术会议(IACRLAA 2024) 2024 International Academic Conference on Intelligent Control Systems and Robot Learning 一、【会议简介】 本届机器人学习与自动化算法国际学术会议(IACRLAA 2024)将于2024年1月23日在北京盛大开幕。这次会议将…

深信服技术认证“SCSA-S”划重点:SQL注入漏洞

为帮助大家更加系统化地学习网络安全知识&#xff0c;以及更高效地通过深信服安全服务认证工程师考核&#xff0c;深信服特别推出“SCSA-S认证备考秘笈”共十期内容&#xff0c;“考试重点”内容框架&#xff0c;帮助大家快速get重点知识~ 划重点来啦 深信服安全服务认证工程师…

目标检测YOLO系列从入门到精通技术详解100篇-【目标检测】YOLOV5

目录 算法原理 网络结构 1.1 Backbone 1.2 Neck 1.3 Head 损失计算 4.1 总损失