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

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

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

相关文章

交叉测试的优点和缺点!

交叉测试在软件测试中具有重要的地位和作用。通过交叉测试,可以提高软件质量、提升用户体验、增加测试覆盖率、提高测试效率以及满足市场需求和竞争优势。因此,在软件开发和测试过程中,应充分重视交叉测试的实施和应用。 以下是对其优缺点的…

推荐3款Windows系统的神级软件,免费、轻量、绝对好用!

DiskView DiskView是一款用于管理和查看磁盘空间的工具,它集成了于微软的Windows操作系统资源管理器中,以显示直观的磁盘空间使用情况。该软件通过生成图形化地图,帮助用户组织和管理大量文件和文件夹,从而高效地管理磁盘空间。用…

JDBC 学习笔记+代码整理

Tip Idea自带可视界面👉MySQL 图形化界面-CSDN博客 Idea2022无add Framework support选项👉最新版IDEA:Add web Framework Support步骤/构建JavaWeb项目步骤_idea add framework support-CSDN博客 基本步骤 1.加载驱动包Driver 2.建立与数据库的连接C…

证券交易系统中服务器监控系统功能设计

1.背景介绍 此服务器监控系统的目的在于提高行情服务器的监管效率,因目前的的行情服务器,包括DM、DT、DS配置数量较多,巡回维护耗时较多,当行情服务器出现异常故障,或者因为网络问题造成数据断线等情况时,监…

芯科普| 矽光子是什麼?可以用在哪些领域?点击查看!

随着生成式人工智能的崛起,数据传输需求亦呈现爆发式增长。而在此背景下,台积电在半导体展览上披露的硅光子(SiPh:Silicon Photonics)技术进展,更是将硅光子推向了风口浪尖,成为了市场的宠儿。 …

IDEA导入依赖+Maven配置

Maven安装及配置 安装 安装链接:https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/ 注:建议不要直接安装最新版本,选用常用、稳定的版本安装即可,比如:3.6.3 配置 1> 配置bash_profile文件 终端输…

《知识点扫盲 · 监听器 Listener》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

高效前端开发:解密pnpm的存储与链接

什么是pnpm PNPM(Performant NPM)是一种快速且节省磁盘空间的包管理工具。相较于其他包管理器如NPM和Yarn,PNPM通过独特的存储机制和链接技术解决了许多常见的问题。以下是PNPM如何避免这些问题以及其关键技术的详细介绍。 特性 PNPM Store…

批量注册工具是什么

摘要:批量注册工具作为自动化领域的一个分支,为用户在多平台账号管理中提供了极大的便利。 关键词 批量注册,自动化,实战代码,设计原则,法律法规 1. 引言 批量注册工具能够在短时间内创建大量账号&…

【MySQL备份】Percona XtraBackup总结篇

目录 1.前言 2.问题总结 2.1.为什么在恢复备份前需要准备备份 2.1.1. 保证数据一致性 2.1.2. 完成崩溃恢复过程 2.1.3. 解决非锁定备份的特殊需求 2.1.4. 支持增量和差异备份 2.1.5. 优化恢复性能 2.2.Percona XtraBackup的工作原理 3.注意事项 1.前言 在历经了详尽…

数据库、创建表、修改表

一、数据库 1、登陆数据库 2、创建数据库zoo 3、修改数据库zoo字符集为gbk 4、选择当前数据库为zoo 5、查看创建数据库zoo信息 6、删除数据库zoo 二、创建表 1、创建一个名称为db_system的数据库 2、在该数据库下创建两张表,具体要求如下 员工表 user…

图像的对数变换

对数变换在图像处理中通常有以下作用: 因为对数曲线在像素值较低的区域斜率较大,像素值较高的区域斜率比较低,所以图像经过对数变换之后,在较暗的区域对比度将得到提升,因而能增强图像暗部的细节。图像的傅里叶频谱其…

MySQL 结构的优化方案

主要是指三方面,即表结构、字段结构以及索引结构,这些结构如果不合理,在某些场景下也会影响数据库的性能,因此优化时也可以从结构层面出发。一般在项目的库表设计之初就要考虑,当性能瓶颈出现时再调整结构,…

Python函数语法详解(与C++对比学习)【未完】

一、Python函数的形式 def function_name (参数, ...) -> return value_type:# 函数体return value# 看具体需求# 如果没有return语句,函数执行完毕后也会返回结果# 只是结果为None。return None可以简写为return 1. Python的返回值 在Python3中,提…

利用Redis bitmap 实现签到案例

数据库实现 设计签到功能对应的数据库表 CREATE TABLE sign_record (id bigint NOT NULL AUTO_INCREMENT COMMENT 主键,user_id bigint NOT NULL COMMENT 用户id,year year NOT NULL COMMENT 签到年份,month tinyint NOT NULL COMMENT 签到月份,date date NOT NULL COMMENT 签…

EI检索被认为是工程技术领域的权威数据库

EI检索被认为是工程技术领域的权威数据库,能够被EI检索收录的期刊和会议论文通常被认为具有一定的学术质量和影响力。然而,EI检索与“高水平”不能完全画等号,以下是一些需要考虑的因素: 1. 收录标准:虽然EI检索有严格…

在Linux操作系统中关于逻辑卷的案例

1.如何去创建一个逻辑卷 1.1先去创建物理卷 如上图所示,physical volume 物理卷 被成功创建。 如上图所示,可以使用pvscan来去查看当前Linux操作系统的物理卷/ 1.2使用创建好的物理卷去创建一个卷组。 如上图所示,可以使用第一步创建的两个…

【中项第三版】系统集成项目管理工程师 | 第 9 章 项目管理概论③ | 9.6 - 9.10

前言 第 9 章对应的内容选择题和案例分析都会进行考查,这一章节理论性较强,学习要以教材为准。本章分值预计在4-5分。 目录 9.6 项目管理过程组 9.7 项目管理原则 9.8 项目管理知识领域 9.9 价值交付系统 9.10 本章练习 9.6 项目管理过程组 项目…

千万不能踏入的渠道管理五大误区!【附策略】

一、引言 在当今激烈的市场竞争环境中,有效的渠道管理是企业获得竞争优势的关键。然而,在实践过程中,不少企业因陷入管理误区而影响了市场拓展和品牌建设。本文旨在揭示渠道管理中常见的五大误区,并提供避免策略,帮助…

高级Redis之Stream的用法示例

不想自己搭建一个mq怎么办?Redis的Stream 来帮你,Redis Stream 是 Redis 5.0 引入的一种新的数据结构,用于处理实时的、可持久化的、基于时间序列的数据流。它非常适合处理事件流、日志、消息队列等场景。下面是一个使用 Redis Stream 的具体…