11-28 SpringBoot1

2023-12-01 15:04
文章标签 28 springboot1

本文主要是介绍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注解  有没有符合条件的类

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

这篇关于11-28 SpringBoot1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/441633

相关文章

【vue3|第28期】 Vue3 + Vue Router:探索路由重定向的使用与作用

日期:2024年9月8日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉在这里插入代码片得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^ 1.01365 = 37.7834;0.99365 = 0.0255 1.02365 = 1377.4083;0.98365 = 0.0006 说

【抽代复习笔记】28-群(二十二):四道子群例题

例1:证明,循环群的子群是循环群。 证:设G = (a),H ≤ G。 (1)若H = {e},则H是一阶循环群; (2)设H至少包含2个元素,即设H = {...,a^(-k),a^(-j),a^(-i),a^0,a^i,a^j,a^k,...}, 其中a^i是H中正指数最小的元素,0<i<j<k, 下证a^i是H的生成元: 对任意的a^t∈H(t∈Z),存在q∈Z,使得t = qi

【C++学习(28)】通俗一点讲解:std::bind 回调技术

std::bind 是 C++11 标准库中的一个功能,它允许你“绑定”某些参数到一个函数、成员函数或可调用对象上,从而生成一个新的可调用对象。这种新的可调用对象可以稍后被调用,而且其中一些参数已经被预先设置好了。这在回调函数和异步编程中特别有用。 下面我用一个通俗的例子来解释 std::bind 是如何工作的。 假设场景 假设你有一个家庭厨师,他有一个技能叫做“做饭”。做饭需要两个参数:一

『功能项目』Unity连接读取本地数据库【28】

打开上一篇27账号登陆注册界面UI搭建的项目, 本章要做的事情是本地数据库的连接与读取数据库中的道具信息(刀、铁块) 访问官方网站:MySQL 一、下载Mysql 首页滑到最下面,选择Downloads下的MySQL Community server 点击查看下载历史版本 下载完毕后将文件解压到你想保存到的盘和目录内。我是将文件解压到E:Program FilesM

代码随想录 刷题记录-28 图论 (5)最短路径

一、dijkstra(朴素版)精讲 47. 参加科学大会 思路 本题就是求最短路,最短路是图论中的经典问题即:给出一个有向图,一个起点,一个终点,问起点到终点的最短路径。 接下来讲解最短路算法中的 dijkstra 算法。 dijkstra算法:在有权图(权值非负数)中求从起点到其他节点的最短路径算法。 需要注意两点: dijkstra 算法可以同时求 起点到所有节点的最短路径权值不

代码随想录第八天|151.翻转字符串里的单词 卡码网:55.右旋转字符串 28. 实现 strStr() 459.重复的子字符串

反转字符串的单词 思路:刷过稍微忘记 class Solution {public://去除空格string remove(string s){//使用快慢指针int slow=0;int i=0;for(;i<s.size();i++){if(s[i]!=' '){if(slow!=0){s[slow++]=' ';}while(s[i]!=' '&&i<s.size()){s[slow+

2024.08.28 校招 实习 内推 面经

🛰️  :neituijunsir    交* 流*裙 ,内推/实习/校招汇总表格  1、校招 | 吉利控股集团2025届全球校园招聘启动(内推) 校招 | 吉利控股集团2025届全球校园招聘启动(内推) 2、校招 | 滴滴2025秋季校招正式启动(内推) 校招 | 滴滴2025秋季校招正式启动(内推) 3、校招 | 2025年上汽集团校园招募行动全面启动啦! 校招 |

leetcode解题思路分析(四)22-28题

括号生成 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 很容易想到采用回溯法解决该题,通过画出树分析递归规律可得如下代码 class Solution {public:void backtrace(int left, int right, int n, string& s, vector<string>& res) {if (left == n

idea 编译断点运行 tomcat 10.1.28 源码

idea 编译运行 tomcat 10.1.28 源码 1. 所需资源 tomcat 10.1.28 zulu JDK 22 maven idea (支持 JDK 22) 2. Idea 导入项目 10.1.28.tar.gz 解压到指定文件夹 如 ~\tomcat-source\tomcat-10.1.28 这里等待一段时间,生成 ~\tomcat-source\tomcat-10.1.

借助文本样式为网页赋予生命——WEB开发系列28

文本样式不仅仅是装饰,它对用户体验和网站的可读性有着重要影响。 一、基本文本和字体样式 1. 字体 CSS 中的字体属性定义了文本的外观,包括字体的类型、大小、粗细等。我们来详细了解这些属性: 字体颜色 使用 ​​color​​​ 属性可以设置文本的颜色。例如: p {color: #333; /* 深灰色 */} 字体种类 ​​font-family