SpringBoot-第一天学习

SpringBoot介绍-约定大于配置

SpringBoot是在Spring4.0基础上开发的,不是替代Spring的解决方案,而是和Spring框架结合并进一步简化Spring搭建和开发过程的。

如何简化?就是通过提供默认配置等方式让我们更容易,集成了大量常用的第三方库配置,所有你想用的常用框架,它都有对应的组件支持

大量的SpringBoot应用只需要非常少量的配置代码

另外SpringBoot通过继承大量的框架使得不同依赖包的版本冲突问题得到解决

内嵌了web层的tomcat,数据访问的SpringData,还有各种中间件,只需要引入进来就可以。

 



只有在pom依赖中加上spring-boot-starter的依赖,才是作为一个springboot的项目


开发web所依赖的所有jar包都加进来了

里面有转json的工具、tomcat、web服务的组件


1.加注释

@SpringBootApplication

2.在main方法中加上

SpringApplication.run(Application.class,args);


如何把SpringBoot项目部署到服务器上

通过maven把项目打包成jar包,然后把jar包托到某个文件夹下,通过命令行的方式去启动

java -jar 打包后jar包的名字

会发现报错,因为启动这个jar包后,这个jar会找不到启动类的入口

需要在pom文件中导入

spring-boot-maven-plugin



启动类的位置:如果不加@ComponentScan(扫描路径),最好放在需要的扫描包的根目录下,这样才能自动扫描所有的Bean放到spring容器中



springboot项目约定:约定大于配置



前面说SpringBoot通过继承大量的框架使得不同依赖包的版本冲突问题得到解决

在创建springBoot项目时,会让我们选择springboot的版本号(例如springboot 2.4.2)

我们可以在pom文件中加上父依赖

spring-boot-starter-parent

而spring-boot-starter-parent的父maven项目是

spring-boot-dependencies

spring-boot-dependencies中引入了大量 前面已选择的springboot 的版本号 对应的 其他依赖的版本号的配置,这样我们在自己的springBoot项目 就不用加上版本号 ,避免版本冲突的问题



不同

 starter场景启动器:不同场景的场景启动器维护了所对应的所有依赖,从而简化maven文件的书写



spring-boot-maven-plugin,它是作为bulid来加入插件的,不是dependency依赖

springboot只有加了这个插件,当运行Java -jar xxx.jar包时,才能找到启动类的入口,项目才能正常部署



描述一下springboot的作用?

springboot有哪些特性?



创建springboot项目的两种方式

(1)创建maven项目,然后在pom文件中加入springboot-starter依赖

(2)直接创建选择springInitializer创建springboot项目



SpringBoot的启动类

SpringApplication除了调用静态run方法来启动springboot项目,还可以创建实例对象,来使用SpringApplication的其他方法。

要使用SpringApplication的其他方法,需要自定义一个SpringApplication,然后使用它的其他方法



配置文件的使用


 



配置文件的优先级:上面的最高



上图的最后一行命令是通过外部文件的配置文件来指定配置内容

config内的配置文件的优先级 >> 和config同级的配置文件的优先级

父级的配置文件的优先级 >> 子配置文件

命令行 + 配置参数 的优先级 >> 配置文件

配置属性:先按位置找,同位置有多个配置文件,再按优先级顺序高的采用

spring.profiles.active 指定环境 dev环境 ,没有的属性,会按照指定的 环境,从优先级低的配置文件中读取。(下面文件的命名格式是约定)

对于不同环境的,通过spring.profiles.active 指定环境,也可以指定让哪个类生效,通过给类上加注解@Profile("dev")

配置文件配置属性:先看配置文件的位置 ,再看spring.profiles.active指定环境,再看优先级yml、yaml、properties



上面这种通过读取的配置文件,它的优先级很低



属性注入

1.通过@value+美元符,可以给单个成员变量注入参数值

如果类中的成员属性过多,上述方式麻烦。可以采用方法2

2.给对象中的所有成员(变量)属性注入参数值,可以通过@ConfigurationProperties+前缀prefix的方式给有的成员属性赋值

配置文件中的参数命名很松散,多种方式都可以和成员变量 一一绑定



配置文件中的属性占位符,可以实现对其他属性的引用



配置文件中的属性值可以赋随机值,包含以下几种形式的随机值



如果不想把类的成员变量的赋值和yml文件写在一起,可以通过@PropertySource() 指定外部配置来源的方式 来赋值

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

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

相关文章

泛微开发修炼之旅--29用计划任务定时发送邮件提醒

文章链接:29用计划任务定时发送邮件提醒

嵌入式Linux系统编程 — 6.7 实时信号

目录 1 什么是实时信号 2 sigqueue函数 3 sigpending()函数 1 什么是实时信号 等待信号集只是一个掩码,它并不追踪信号的发生次数。这意味着,如果相同的信号在被阻塞的状态下多次产生,它只会在信号集中被记录一次,并且在信号集…

Django文档简化版——Django快速入门——创建一个基本的投票应用程序

Django快速入门——创建一个基本的投票应用程序 准备工作1、创建虚拟环境2、安装django 1、请求和响应(1)创建项目(2)用于开发的简易服务器(3)创建投票应用(4)编写第一个视图1、编写…

FreeRTOS的任务间通信

文章目录 4 FreeRTOS任务间通信4.1 队列4.1.1 队列的使用4.1.2 队列的创建,删除,复位4.1.3 队列的发送,接收,查询 4.2 邮箱(mailbox)4.2.1 任务中读写邮箱4.2.2 中断中读写邮箱 4.3 队列集4.3.1 队列集的创…

linux19:程序替换

一&#xff1a;最简单的看看程序替换是什么样的&#xff08;单个进程版&#xff09; 1 #include<stdio.h>2 #include<unistd.h>3 #include<stdlib.h>4 int main()5 {6 printf("Before : I am a process , myPid:%d,myPPid:%d\n",getpid(),getpp…

【Ubuntu】详细说说Parallels DeskTop安装和使用Ubuntu系统

希望文章能给到你启发和灵感~ 如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏 支持一下博主吧~ 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境二、Ubuntu系统的使用2.1 系统的下载2.2 系统的安装2.3 安装桌面版(可选)2.3.1 安装/更新apt2.3.2 安装桌面版2.3…

算法day02 回文 罗马数字转整数

回文 搞错了String类型的indexOf方法&#xff0c;理解成获取对应下标的值&#xff0c;实际上是在找对应值的下标。 4ms 耗时最少的方法尽量不会去调用jdk提供的方法&#xff0c;而是直接使用对应的数学逻辑关系来处理&#xff0c; 甚至用 代替equals方法。 罗马数字转整数 考…

Simulink中示波器连续运行的方法

1.在Simulink中,经常要使用到示波器,默认示波器是定时运行的,只能观察到一小部分运行的波形;实际调试过程中,经常要连续运行,因此,需要设置示波器为连续运行模式,下面将介绍示波器连续运行的方法。 打开Simulink仿真软件,找到仿真设置按钮,点击设置: 2.将其停止时间…

Oracle 解决4031错误

一、问题描述 什么是4031错误和4031错误产生的原因: 简单一个句话概括: 由于服务器一直在执行大量的硬解析,导致Oracle 的shared pool Free空间碎片过多,大的chunk不足, 当又一条复杂的sql语句要硬解析时, 缺少1个足够大的Free chunk, 通常就会报4031错误. 二、解决方法 临…

JVM原理(十五):JVM虚拟机静态分配与动态分配

1. 分派 本节讲解的分派调用过程将会揭示多态性特征的一-些最基本的体现&#xff0c;如“重载”和“重写”在Java虚拟机之中是如何实现的。 1.1. 静态分派 案例&#xff1a; 我们先来看一段代码: Human mannew Man(); 我们把上面代码中的“Human"称为变量的“静态类型…

9 redis,memcached,nginx网络组件

课程目标: 1.网络模块要处理哪些事情 2.reactor是怎么处理这些事情的 3.reactor怎么封装 4.网络模块与业务逻辑的关系 5.怎么优化reactor? io函数 函数调用 都有两个作用:io检测 是否就绪 io操作 1. int clientfd = accept(listenfd, &addr, &len); 检测 全连接队列…

Contact Form 7表单获取提交用户IP及URL等信息

有时候&#xff0c;您可能需要了解Contact Form 7表单提交后的更多的信息&#xff0c;而不仅仅是通过联系人表单字段获取用户的联系信息。例如&#xff0c;需要知道用户是哪个国家&#xff08;通过获取IP&#xff09;&#xff0c;了解用户使用的设备&#xff08;手机还是电脑&a…

【IDEA】maven如何进行文件导入,配置并打包

一&#xff0c;介绍、安装 1、maven介绍 maven是一个Java世界中&#xff0c;构建工具。 核心功能&#xff1a; (1) 管理依赖&#xff1a; 管理文件运行的顺序逻辑依赖关系。对配置文件&#xff0c;进行构建和编译。其也是在调用jdk&#xff0c;来进行编译打包工作。 (2) 打…

Protobuf(三):理论学习,简单总结

1. Protocol Buffers概述 Protocol Buffers&#xff08;简称protobuf&#xff09;&#xff0c;是谷歌用于序列化结构化数据的一种语言独立、平台独立且可扩展的机制&#xff0c;类似XML&#xff0c;但比XML更小、更快、更简单protobuf的工作流程如图所示 1.1 protobuf的优点…

2024上海初中生古诗文大会暑期备考:单选题真题示例和独家解析

现在距离2024年初中生古诗文大会初选还有不到4个月&#xff08;11月3日正式开赛&#xff09;&#xff0c;我们继续来看10道选择题真题和详细解析。为帮助孩子自测和练习&#xff0c;题目的答案和解析统一附后。 本专题持续分享。 一、上海初中古诗文大会历年真题精选(参考答案…

【ROS2】初级:CLI工具- 启动节点

目标&#xff1a;使用命令行工具一次启动多个节点。 教程级别&#xff1a;初学者 时间&#xff1a;5 分钟 目录 背景 先决条件 任务 运行启动文件控制 Turtlesim 节点&#xff08;可选&#xff09; 摘要 下一步 背景 在大多数入门教程中&#xff0c;您每运行一个新节点就会打开…

【Unity配置数据文件】ScriptableObject核心应用

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 专栏交流&#x1f9e7;&…

NASA——quarius(水瓶座) L3 网格化 1 度年土壤湿度,第 5 版

Aquarius L3 Gridded 1-Degree Annual Soil Moisture V005 水瓶座 L3 网格化 1 度年土壤湿度&#xff0c;第 5 版 简介 该数据集包含美国国家航空航天局&#xff08;NASA&#xff09;科学应用卫星&#xff08;SAC-D&#xff09;上的宝瓶座被动微波辐射计得出的第 3 级网格化…

前端面试题5(前端常见的加密方式)

前端常见的加密方式 在前端进行数据加密主要是为了保护用户的隐私和提升数据传输的安全性。前端数据加密可以采用多种方法&#xff0c;以下是一些常见的加密技术和方法&#xff1a; 1. HTTPS 虽然不是直接的前端加密技术&#xff0c;但HTTPS是保障前端与后端数据传输安全的基…

【BUUCTF-PWN】12-get_started_3dsctf_2016

32位&#xff0c;开启了NX保护 执行效果&#xff1a; main函数&#xff1a; 其中gets()函数存在栈溢出&#xff0c;溢出距离为0x38&#xff0c;这里是使用的esp寻址&#xff0c;属于外平栈&#xff0c;不需要覆盖ebp的四个字节。而之前做的题一般都是ebp寻址&#xff0c;…