SpringBoot-第一天学习

news2024/11/26 10:59:55

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() 指定外部配置来源的方式 来赋值

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

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

相关文章

景区智能厕所系统,打造智能化,人性化公共空间

在智慧旅游的大潮中,景区智能厕所系统正逐渐成为提升公共空间智能化、人性化水平的关键载体。作为智慧城市建设的重要组成部分,智能厕所系统不仅解决了传统公厕存在的诸多问题,更通过科技的力量,为游客创造了更加舒适、便捷的如厕…

StreamSets: 数据采集工具详解

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: 欢迎关注微信公众号:野老杂谈 ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来&a…

c/c++ 程序运行的过程分析

c/c编译基础知识 GNU GNU(GNU’s Not Unix!)是一个由理查德斯托曼(Richard Stallman)在1983年发起的自由软件项目,旨在创建一个完全自由的操作系统,包括操作系统的内核、编译器、工具、库、文本编辑器、邮…

渲染农场渲染真的很贵吗?如何正确使用云渲染农场?

作为渲染行业主流的技术服务“渲染农场",一直都是备受大家关注,渲染农场最核心的在于充足的计算机算力,结合3D软件支持多台机器渲染的特点,租用渲染农场的机器帮助你快速的解决你的渲染项目。 虽然说渲染农场需要支付一定的…

Astro新前端框架首次体验

Astro新前端框架首次体验 1、什么是Astro Astro是一个静态网站生成器的前端框架,它提供了一种新的开发方式和更好的性能体验,帮助开发者更快速地构建现代化的网站和应用程序。 简单来说就是:Astro这个是一个网站生成器,可以直接…

MinIO:开源对象存储解决方案的领先者

MinIO:开源对象存储解决方案的领先者 MinIO 是一款开源的对象存储系统,致力于提供高性能、可伸缩、安全的数据存储解决方案。 官方解释:MinIO 是一个基于Apache License v2。0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适…

因版本冲突导致logback的debug日志不打印

因框架调整,降级了logback的版本号,由1.3.12降级为1.2.11(因框架限制,只能采用1.2版本),降级后发现debug日志无法打印出来,logback.xml配置文件不生效。后排查发现是与slf4j的版本兼容问题 依赖…

以某头部基金实践为例,验证深信服超融合对TA系统承载能力

TA(Transfer Agent)开放式基金登记过户系统是交易管理系统的重要组成部分,是登记注册机构向投资者提供账户管理、份额登记、交易清算、红利发放、持有人名册保管的综合服务系统。 作为开放式基金运作的核心系统之一,承担着投资者…

Qt 加载图片的几种方式 以及加载 loading

项目中经常使用加载图片: 常用有两种方式: 1.使用 QWidget 加载图片: 效果: 样例源码: int pict_H ui->widgetImage->height();int pict_W ui->widgetImage->width();ui->widgetImage->setFixe…

【车载开发系列】GIT安装详细教程

【车载开发系列】GIT安装详细教程 【车载开发系列】GIT安装详细教程 【车载开发系列】GIT安装详细教程一. GIT软件概念二. GIT安装步骤三. GIT安装确认三. GIT功能使用1)Git Bash2)Git CMD3)Git FAQs4)Git GUI 一. GIT软件概念 G…

comsol随机材料参数赋值

comsol随机材料参数赋值 在comsol中定义外部matlab函数 在comsol中定义外部matlab函数 首选项,安全性,允许 材料中,将杨氏模量更改为变量函数 计算 应力有波动,可见赋值成功 也可以看到赋值的材料参数:

针对 LLM 应用程序优化 RAG

前言 大型语言模型 (LLM)(如 GPT-4)在生成类似人类的文本方面表现出了令人印象深刻的能力。然而,在保留事实知识方面,它们仍然面临挑战。这就是检索增强生成 (RAG) 的作用所在——将 LLM 的生成能力与外部知识源相结合。RAG 已成…

TAPD项目管理软件无法与企业微信进行关联

TAPD一段时间未使用后,需要重新启动,此时会出现你的企业微信尚未与TAPD账号关联的提示 解决方案:找到TAPD应用,先删除应用,然后再解除禁用即可

【anaconda】—“conda info“命令后conda配置和环境信息的理解

文章目录 conda配置和环境信息的理解 conda配置和环境信息的理解 安装anaconda成功后,打开cmd,输入"conda info"命令,结果显示如下: conda的配置和环境信息的输出。以下是对每个字段的解释: active environm…

【MySQL】详解

SQL语句的分类: 1.DDL(Data Definition Languages)语句: 数据定义语言 ,这些语句定义了不同的数据段,数据库,表,列,索引等数据库对象的定义。常用的语句关键字主要包括…

spark shuffle写操作——BypassMergeSortShuffleWriter

创建分区文件writer 每一个分区都生成一个临时文件,创建DiskBlockObjectWriter对象,放入partitionWriters 分区writer写入消息 遍历所有消息,每一条消息都使用分区器选择对应分区的writer然后写入 生成分区文件 将分区writer的数据flu…

强烈建议!所有Python基础差的同学,死磕这本64页的背记手册!

Python背记手册是一份非常实用的学习资料,它涵盖了Python语言的基础知识、语法规则、常用函数和模块等内容,对于初学者和有一定基础的Python程序员来说都非常有用。通过背诵这份手册,可以加深对Python语言的理解和记忆,提高编程能…

百度云智能媒体内容分析一体机(MCA)建设

导读 :本文主要介绍了百度智能云MCA产品的概念和应用。 媒体信息海量且复杂,采用人工的方式对视频进行分析处理,面临着效率低、成本高的困难。于是,MCA应运而生。它基于百度自研的视觉AI、ASR、NLP技术,为用户提供音视…

RFID电子锁在物流货运智能锁控管理的创新方案

物流货运锁控的现实挑战 易损性:传统锁具易受物理破坏,无法抵御恶意撬锁。 低效率:依赖人工操作,开锁速度慢,影响作业效率。 高成本:钥匙的制作、管理和丢失替换成本高昂。 监控缺陷:缺乏实…

笔记本如何录屏?3个方法分享给你

随着科技的飞速发展,录屏功能已不再局限于传统的教育或游戏领域,而是成为了大众都能用得到的创作、分享、记录生活的得力助手。同时,在生活中人们更多地使用到笔记本电脑,笔记本电脑有着其便携性、高效能和丰富软件资源&#xff0…