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注解  有没有符合条件的类

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

带头结点的双向循环链表

目录 带头结点的双向循环链表 1.存储定义 2.结点的创建 3.结点的初始化 4.尾插结点 5.尾删结点 6.头插结点 7.头删结点 8.查找并返回结点 9.在pos结点前插入结点 10.删除pos结点 11.打印链表 12.销毁链表 13.头插结点2.0版 14.尾插结点2.0版 前言&#xff1a; 当…

go开发之个人微信号机器人开发

简要描述&#xff1a; 下载消息中的文件 请求URL&#xff1a; http://域名地址/getMsgFile 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-Type&#xff1a;application/jsonAuthorization&#xff1a;login接口返回 参数&#xff1a; 参数名必选类型…

IO / day01 作业。

1.使用fgets统计一个文件的行号 //使用fgets统计一个文件的行号#include <string.h> #include <stdlib.h> #include <stdio.h>int main(int argc, const char *argv[]) {if(argc<2) //获取文件名{printf("input error\n!");printf("usage…

Linux系统的常见命令十一,文本编辑器(vi和vim)

目录 vi命令vim命令vi命令与vim命令的区别 本文主要介绍Linux系统的文本编辑器命令vi和vim&#xff0c;还有它们之间的区别。 vi命令 vi是Linux和其他类Unix操作系统中最常用的文本编辑器之一&#xff0c;它的功能强大且灵活&#xff0c;可以通过键盘快捷键来完成大量的编辑操…

【数据结构】线段树

目录 1.概述2.代码实现2.1.聚合操作——求和2.2.聚合操作——求和、求最小值、求最大值 3.应用4.与前缀和之间的区别 更多数据结构与算法的相关知识可以查看数据结构与算法这一专栏。 1.概述 &#xff08;1&#xff09;线段树 (Segment Tree) 是一种二叉树形数据结构&#xff…

算法通关村第一关—白银挑战—链表高频面试算法题—查找两个链表的第一个公共子节点

文章目录 查找两个链表的第一个公共子节点&#xff08;1&#xff09;暴力求解法&#xff08;2&#xff09;使用哈希Hash⭐&#xff08;3&#xff09;使用集合⭐ - 与Hash类似&#xff08;4&#xff09;使用栈⭐&#xff08;5&#xff09;仍有更多方法&#xff0c;作者尚未理解&…

安卓小程序与编译抓包

APK小程序渗透测试 查找bp的证书 在浏览器中打开bp代理&#xff0c;然后在网页中搜索hppps://burp 点击高级——接受风险并继续 拿到证书 将浏览器信任证书 打开设置 搜索证书——查看证书 点击导入——导入证书 证书验证成功后&#xff0c;访问网页&#xff08;吾爱破解&a…

模型层——单表操作

单表操作 一 ORM简介 查询数据层次图解&#xff1a;如果操作mysql&#xff0c;ORM是在pymysq之上又进行了一层封装 MVC或者MTV框架中包括一个重要的部分&#xff0c;就是ORM&#xff0c;它实现了数据模型与数据库的解耦&#xff0c;即数据模型的设计不需要依赖于特定的数据库…

河南省第一届职业技能大赛网络安全项目试题

河南省第一届职业技能大赛 网络安全项目试题 一、竞赛时间 总计&#xff1a;420分钟 竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A模块 A-1 登录安全加固 240分钟 200分 A-2 Web安全加固&#xff08;Web&#xff09; A-3 流量完整性保护与事件监控&am…

韩语语法中에和로/으로区别,柯桥发音入门韩语培训学校

에和로/으로在行动的去向与到达或涉及的地点一致时&#xff0c;二者可以互换。 但是에表示到达或涉及的具体地点&#xff0c;而로/으로表示的时动作指向的方向或经过的地点。 在只表示去向而不表示具体地点时&#xff0c;只能用로/으로&#xff0c;而在只表示具体地点而不表示方…

Nginx漏洞修复

1、漏洞 去掉在请求响应头中存在的信息 Server: nginx X-Content-Type-Options: nosniff X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1;modeblock 修复方法 在Nginx的配置文件中的 server 标签内增加一下配置 server_tokens off; add_header X-Frame-Options SAMEORIGIN; …

情绪咖啡亭完美收官!来最美环湖路喝一杯“治愈”咖啡

“芭比粉”的主题墙&#xff0c;橙蓝撞色的情绪日历、当下最流行的克莱因蓝咖啡亭......颜色鲜艳&#xff0c;造型吸睛的“情绪咖啡亭”互动艺术装置区与碧树蓝天、海鸥白云相呼应。春城晚报&#xff08;开屏新闻&#xff09;生活节“送服务”系列之一的“情绪咖啡亭”活动将在…

jetson nano SSH远程连接(使用MobaXterm)

文章目录 SSH远程连接1.SSH介绍2.准备工作3.连接步骤3.1 IP查询3.2 新建会话和连接 SSH远程连接 本节课的实现&#xff0c;需要将Jetson Nano和电脑保持在同一个局域网内&#xff0c;也就是连接同一个路 由器&#xff0c;通过SSH的方式来实现远程登陆。 1.SSH介绍 SSH是一种网…

字符集与编码规则

字符集 强调&#xff1a;UTF-8是编码规则&#xff0c;不是字符集 过程&#xff1a; 字符 --查表获得对应数字&#xff0c;--编码 解码---查表----获取字符 ASCII码 &#xff1a;一个字节 8bit GBK字符集&#xff08;windows系统默认使用的GBK,系统显示ANSI&#xff09; 存…

segment-anything安装教程

文章目录 一. segment-anything安装教程 一. segment-anything安装教程 官网安装说明:https://github.com/facebookresearch/segment-anything anaconda下新建一个环境 conda create -n sam python3.8激活新建的环境 conda activate sam更换conda镜像源 conda config --add ch…

如何靠掌握自己的大数据打破信息流的壁垒?

在当今数字化时代&#xff0c;打造自己的私域流量已经成为商家乃至获取竞争优势的关键手段之一。通过掌握自己的大数据&#xff0c;可以更好地了解用户需求和市场趋势&#xff0c;优化产品和服务&#xff0c;从而打破信息流的壁垒。本文将就如何通过打造自己的私域流量并掌握大…

ROS URDF集成Rviz流程

实现流程&#xff1a; 一、新建功能包&#xff0c;导入依赖 二、编写 urdf 文件 三、在 launch 文件集成 URDF 与 Rviz 四、在 Rviz 中显示机器人模型 需求&#xff1a;在 Rviz 中显示一个盒状机器人 1、创建功能包&#xff0c;导入依赖 创建一个新的功能包&#xff0c;名…

VMWare17配置自动启动虚拟机提示:无法更新“自动启动配置”,请确保存在vmAutoStart.xml文件,并且您有权写入此文件。

文章目录 配置的时候提示&#xff1a;无法更新“自动启动配置”&#xff0c;请确保存在vmAutoStart.xml文件&#xff0c;并且您有权写入此文件。需要修改vmAutoStart.xml这个文件权限对vmautostart.xml文件右键-->属性&#xff0c;选择编辑直接将完全控制的允许勾上&#xf…

工程师每日刷题 -4

文章目录 1、深度学习2、算法与数据结构2.1、暴力解法2.2、滑动窗口法 3、编程基础 1、深度学习 问题&#xff1a;CNN的本质和优势&#xff1f; CNN 本质上是一个多层感知机 (MLP)&#xff0c;其成功的原因关键在于它所采用的【稀疏连接】&#xff08;局部感受&#xff09;和…

Android Studio Giraffe | 2022.3.1

Android Gradle 插件和 Android Studio 兼容性 Android Studio 构建系统以 Gradle 为基础&#xff0c;并且 Android Gradle 插件 (AGP) 添加了几项专用于构建 Android 应用的功能。下表列出了各个 Android Studio 版本所需的 AGP 版本。 Android Studio 版本所需的 AGP 版本I…