11-28 SpringBoot1

news2024/12/26 22:41:13

约定大于配置

简化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.coloradmin.cn/o/1271589.html

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

相关文章

一键上传,无限容量!打造高效图床工具,利用Electron和Gitee搭建自己的私人云存储空间

说在前面 平时写文章或写代码的时候&#xff0c;都少不了需要将本地图片转成在线图片链接&#xff0c;大家都是使用什么工具进行转换的呢&#xff1f;相信很多人都有自己的图床工具&#xff0c;今天来给大家介绍一下&#xff0c;怎么基于Gitee和Electron来开发一个便捷的图床工…

消除笔怎么用?手把手教你一键智能消除杂物

消除笔怎么用&#xff1f;消除笔是一种非常实用的工具&#xff0c;可以帮助我们快速修复图片中的小问题。无论是想要消除照片中的路人还是进行一些修改&#xff0c;消除笔都可以轻松地帮助我们实现。 以下是使用消除笔的步骤&#xff1a; 1、打开水印云软件&#xff0c;并在工具…

ArkTS-时间滑动选择器弹窗

时间滑动选择器弹窗 以24小时的时间区间创建时间滑动选择器&#xff0c;展示在弹窗上。 示例 useMilitaryTime: 展示时间是否为24小时制&#xff0c;默认为12小时制。默认值&#xff1a;false Entry Component struct TimePickerDialogExample {private selectTime: Date new …

基于SSM乡镇自来水收费系统的设计与实现

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对乡镇自来水收费信息管理混乱&#xff0c;出错率高&#xff0c;信息安…

i己学助力构建幼教智能时代家园共育新模式

近日,为探索智能时代幼儿教育的智慧化解决方案,智能时代赢之道——2023幼教智能时代精英论坛在北京成功举办。在会议现场,来自全国各地的幼儿教育专家、园长、教师汇聚一堂,针对智能时代幼儿园所应该如何变革展开分享和讨论,“i己学智慧课堂”同期发布。 “在1-6年级阶段,平均…

专业级音频处理 Logic Pro X 中文 for Mac

Logic Pro X是一款专业音频制作和音乐创作软件。它是Mac电脑上最受欢迎和广泛使用的音频工作站&#xff08;DAW&#xff09;。Logic Pro X提供了丰富的功能和工具&#xff0c;适用于音乐制作、录音、编辑、混音和音频处理等方面。以下是Logic Pro X软件的一些主要特点和功能&am…

05-React路由(Router 5版本)

React路由背景介绍 背景介绍 多页面应用与SPA单页面应用 多页面应用 先说传统的多页面&#xff0c;需要写多个子页面 点击导航栏&#xff0c;整个页面都会刷新&#xff0c;但是实际上我只想刷新一小块的内容&#xff0c;其他东西变化不大 而且这个单页面&#xff0c;每次切…

【Java】文件I/O-文件内容操作-输入输出流-Reader/Writer/InputStream/OutputStream四种流

导读 在文件I/O这一节的知识里&#xff0c;对文件的操作主要分为两大类&#xff1a; ☑️针对文件系统进行的操作 ☑️针对文件内容进行的操作 上文已经讲了针对文件系统即File类的操作&#xff0c;这篇文章里博主就来带了解针对文件内容的操作&#xff0c;即输入输出流&am…

2023工作中遇到问题一

1、vue中模拟鼠标点击下拉框 <xxx-select ref"aaa" :value"form.serviceCharge" placeholder"请输入" add"(value) > getBasGoods(value)" :configInfo"configInfo" />vue中模拟鼠标点击 this.$refs.aaa.$el.cli…

『C++成长记』构造函数和析构函数

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;C &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、类的六个个默认成员函数 &#x1f4d2;1.1认识默认成员函数 二、构造函数 …

【Linux】SELinux 关闭

SELinux 最在安装国产数据库&#xff0c;遇到了无法远程访问的问题&#xff0c;定位了之后&#xff0c;需要关闭SELinux 。 在关闭它之前我们一起了解一下什么是SELinux &#xff1f; 什么是SELinux 安全增强式 Linux&#xff08;SELinux&#xff09;是一种强制访问控制的…

ElementPlusError: [ElPagination] 你使用了一些已被废弃的用法,请参考 el-pagination 的官方文档

使用element table出现这个错误好几回了&#xff0c;今天把它记录一下&#xff0c;并把错误原因复盘一遍。具体如下&#xff1a; 错误截图 原因 其实这个错误挺迷的&#xff0c;我把各种情况都测试了一遍&#xff0c;最后发现是因为给 翻页参数 total 传值错误导致的。 总结…

docker读取字体异常

解决方法 docker容器中执行 apk add ttf-freefont 根据版本不同 apk add ttf-dejavu-fonts apk add ttf-bernoulli

python 制作3d立体隐藏图

生成文件的3d图&#xff0c;例子&#xff1a; 文字&#xff1a; 隐藏图&#xff1a; 使用建议&#xff1a; &#xff11;、建议不用中文&#xff0c;因为中文太复杂&#xff0c;生成立体图效果不好。 &#xff12;、需要指定FONT_PATH&#xff0c;为一个ttf文件&#xff0c;…

Find My戒指|苹果Find My技术与戒指结合,智能防丢,全球定位

戒指是一种戴套在手指上做纪念或装饰用的小环&#xff0c;用金属、玉石等制成。如今智能戒指是炙手可热的可穿戴设备&#xff0c;智能戒指可以进行健康监测&#xff0c;包括实时监测心率、睡眠质量、步数等个人健康指标&#xff0c;并提供有关饮食和锻炼的建议&#xff0c;以帮…

自动化接口测试:Pytest让你轻松搞定!了解一般流程及方法

首先我们要明确&#xff0c;通常所接口测试其实就属于功能测试&#xff0c;主要校验接口是否实现预定的功能&#xff0c;虽然有些情况下可能还需要对接口进行性能测试、安全性测试。 在学习接口自动化测试之前&#xff0c;我们先来了解手工接口测试怎样进行。 URL组成 为了更…

代码随想录算法训练营 ---第五十一天

1.第一题&#xff1a; 简介&#xff1a; 本题相较于前几题状态复杂了起来&#xff0c;因为多了一个冷冻期。本题讲解可去代码随想录看&#xff0c;这里差不多只是加了些自己的理解。 动规五部曲&#xff0c;分析如下&#xff1a; 确定dp数组以及下标的含义 dp[i][j]&#x…

html5各行各业官网模板源码下载(1)

文章目录 1.来源2.源码模板2.1 HTML5白色简洁设计师网站模板 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/134682321 html5各行各业官网模板源码下载&#xff0c;这个主题覆盖各行业的html官网模板&#xff0c;效果模…

用本子堆经验,手把手教你怎么写国自然项目基金!

随着社会经济发展和科技进步&#xff0c;基金项目对创新性的要求越来越高。申请人需要提出独特且有前瞻性的研究问题&#xff0c;具备突破性的科学思路和方法。因此&#xff0c;基金项目申请往往需要进行跨学科的技术融合。申请人需要与不同领域结合&#xff0c;形成多学科交叉…

一键分发平台-账号设置

首页-账号管理 ●登录后点击箭头-账号设置 控制台-账号管理 ●进入控制台-个人中心-账号管理 ●账号管理-个人资料介绍 ●账号管理-修改密码 ●账号管理-通知设置 ●账号管理-上传设置 ●账号管理-账号设置 ●账号管理-登录日志