【springBoot篇1】概念、创建和运行

news/2025/2/14 5:15:08/

目录

一、什么是springBoot?为什么要学springBoot

springBoot的优点:(5点)

优点1:快速集成框架

优点2:内置了Tomcat容器

优点3:快速部署项目

优点4:少配置,多注解

 优点5:支持更多的监控指标

SpringBoot的缺点

二、springBoot项目的创建

第一步:新建项目

第二步:添加一些框架支持

第三步:查看项目创建的状态 

 第四步:运行项目

SpringBoot的项目结构

启动类和其他类的关系

三、SpringBoot的配置文件

3.1配置文件的作用

存放重要信息

降低代码的耦合度

3.2配置文件的格式

配置文件的分类

配置文件的格式

springBoot配置的规则(格式?冲突?)

properies配置文件的语法

如何读取配置文件的内容

properties缺点分析

yml配置文件

yml配置文件说明

yml的特点:

yml的语法

yml对于单、双引号的问题

yml配置对象

yml配置集合

properties和yml有什么区别(重要)

四、指定文件读取

@PropertySource读取配置文件


一、什么是springBoot?为什么要学springBoot

在之前学习spring的时候,我们了解到:spring框架的诞生可以简化Java程序的开发。

springBoot翻译一下,就是spring框架的脚手架

springBoot的优点:(5点)

优点1:快速集成框架

springBoot提供了各种启动依赖的功能,用于快速集成各种框架;


优点2:内置了Tomcat容器

内置了运行容器,无需额外配置Tomcat等等的Web容器

SpringBoot内部内置了一个被打成jar包的Tomcat容器,当需要使用的时候就会调用它的API。


优点3:快速部署项目

       不需要外部的容器即可启动并且运行项目,springBoot项目启动的时候只需要编写一个main方法,然后运行这个main方法。

       之前的Servlet的时代,还需要安装smart Tomcat的插件。繁琐的的集成、部署操作,才可以运行项目。


优点4:少配置,多注解

springBoot不需要太多的配置文件,只需要在连接redis或者mysql的时候配置一下数据源即可。


 优点5:支持更多的监控指标

 通过这些指标,可以比较好地了解项目的运行情况。(例如有哪些bean等等)


SpringBoot的缺点

版本更新太快,并且不同的版本之间模块区别比较大。



二、springBoot项目的创建

如果idea编辑器是专业版的,那么点击左上角,直接选择新建spring initializr

第一步:新建项目


第二步:添加一些框架支持

第三步:查看项目创建的状态 

看到一个启动类,说明已经创建成功了

 第四步:运行项目

运行启动类的main方法,如果看到输出了spring的标志,说明运行成功了。


SpringBoot的项目结构


启动类和其他类的关系

      其他的类一定要和启动类同一级的目录下面。(也就是和启动类要在同一个包下面,或者位于启动类的子包下面),这样才可以扫描到其他的类。


三、SpringBoot的配置文件

3.1配置文件的作用

存放重要信息

整个项目的所有重要的数据都是写在配置文件当中的,例如:

数据库的连接信息、项目的启动端口、第三方系统的日志信息等等;

如果没有配置文件,那么项目就无法连接数据库


降低代码的耦合度

对于数据库连接等等的信息,不应当写在Java代码当中,应当写在配置文件当中。

场景1:

同时,对于配置文件当中的内容,也可以方便开发人员进行修改

(如果写在.java文件当中,那么对于编译之后的.class文件,它是只读文件无法修改

场景2:

方便运维人员查看项目需要部署的服务器、数据库连接等等。


3.2配置文件的格式

配置文件的分类

1、 系统的配置文件:比如数据库连接字符串、比如日志的相关配置等等,这些是系统定义好的。

2、用户自定义的配置文件。例如用户想要读取的一些文件之类


配置文件的格式

一般都是两种,一种是.properties,另外一种是.yml

但是,无论哪一种格式,都必须要命名为application.yml或者application.properties

因为springBoot在启动的时候默认只读取名称为application的配置文件。


springBoot配置的规则(格式?冲突?)

       规则1:一个项目当中可以存在两种配置文件(一种是properies,另外一种是yml),但是不建议同时出现两种

       规则2:如果.properties.yml的配置文件内容冲突了, 那么会怎样处理?优先读取.properties的配置文件。


properies配置文件的语法

properies是以键值对的形式配置的。

同时,也可以在properies当中自定义配置文件的内容


如何读取配置文件的内容

使用@Value注解来读取配置文件当中的内容:server.port属性跟着的值

/*** @author 25043*/
@Component
public class ReadProperties {/*** value当中的值为配置文件当中* server.port的值* 一定要加大括号*/@Value("${server.port}")private String port;@PostConstructpublic void postConstruct(){System.out.println("yml当中的值:"+port);}
}


properties缺点分析

对于一些key,它会有很多冗余的内容:

当多个key存在相同的部分的时候,需要一一把相同的部分列举出来,比较冗余。


yml配置文件

yml配置文件说明

yml是YAML的缩写,它的全称是:"Yet another Markup Language",yml是一个可读性高,易于理解,用来表达数据序列化的格式。

最大的优势:可以跨语言。


yml的特点:

   1、写法简单、可读性高;

   2、支持更多的数据类型(;

   3、支持跨语言的使用:java/python


yml的语法

这个也是按照key-value的形式来进行存储的。

但是它的写法相比于properties更加地简洁。

当多个key存在重复的元素的时候,可以把这些key相同的部分都给提取出来。

 ​​​​​​​​​​properties:


yml对于单、双引号的问题


yml配置对象

多行的写法:

#对象写法1
student :id : 1name : 张三age: 22

单行的写法:

#对象写法2student2 : {id : 2, name : 李四, age : 20}

获取对象:

第一步:在properties当中存放一个对象:


第二步:新建一个和这个对象属性一模一样的实体类


第三步:把这个实体类注入到Spring容器当中(5大类注解) 


第四步:从配置文件当中获取这个对象  


第五步:从通过属性注入获取对象


yml配置集合

配置文件:

#dbtypes对应一个实体类#name对应的是集合dbtypes : { name: [ mysql, sqlServer,db2 ] }

注入集合: 

 获取bean:


properties和yml有什么区别(重要)

区别1:properties仅仅支持Java项目,但是yml支持包括Java在内的多种语言(例如python);

区别2:properties的key写起来比较冗余,不像yml那样简易。(yml支持层级,层级之间采用缩进的方式)

区别3:yml支持更多的数据类型(string,object,list)


四、指定文件读取

@PropertySource读取配置文件

这个注解可以作用在类的上面,同时指定读取哪一个配置文件

如果没有这个注解,那么@Value注解默认读取的是application.properties文件当中的内容。



http://www.ppmy.cn/news/41863.html

相关文章

AD20 原理图设计流程

Altium Designer 20 的原理图设计大致可以分为9个步骤: (1)新建原理图。这是原理图设计的第一步。 (2)图纸设置。图纸设置就是要设置图纸的大小,方向等信息。图纸设置要根据电路图的内容和标准化来进行。…

认证服务---OAuth2.0基本介绍,微博登录整合到实际项目中【下篇】

前言 上一篇简单介绍了它的基本使用,这一篇就粗略说明一下如何在项目中实际应用 1、核心代码 1.1 认证微服务 当你进行了授权之后,跳转到一个新的地址。这个地址应该是你访问接口的地址。在这个接口中完成相应的access_token获取,以及调用…

JavaScript加减乘除方法及运算符号

嗨大家好,我是技术宅小伙。欢迎再次收看文轩解码的加法术教学,今天来到了第4集。同学们已经看了前3集,觉得之前的教学对你有帮助吗?如果有,可以在下面的留言栏里告诉我,顺便也可以提及你们对学习加法术的意…

【ChatGPT】ChatGPT掀起AIGC与AI浪潮

文章目录 前言 一、我为什么要这么做? 二、AI与AIGC 1.AI是什么? 2. AIGC是什么? 2.1 AIGC的优势 2.2 AIGC的劣势 3. AI与AIGC的区别 三、ChatGPT 四、应对措施和改变 1. 找到自己的风格 2. 学习AI的优点 3. 创新型方法 总结​​​​​​​ 前…

四、k8s详细介绍-应用场景

Kubernetes(K8S)是一种开源的容器编排平台,它可以自动化管理容器化应用程序的部署、扩展和管理。K8S具有高度的可扩展性、灵活性和可靠性,因此在各种应用场景中得到广泛应用。本文将介绍K8S的应用场景,包括以下方面: 1.云原生应用 K8S是云原生应用的基石,它为云原生应…

Java多线程基础

目录 一,线程相关概念 1.程序 2.进程 3.线程 4.并发 5.并行 二,线程基本使用 1.创建线程的方法 继承Thread类 实现Runnable接口 三,继承Thread和实现Runnable的比较 四,线程终止 五,常用方法 用户线程和守…

这么好看的客服组件,还是觉得接入ChatGPT,把它放在博客中那就完美了

我们在使用ChatGPT时,它的返回方式是采用流式回复。感觉这个效果不错。之前做的全都是的等全部结果请求完成,再一次性返回给用户。今天就通过流式回复的效果重写之前的程序。 前端 前端采用一个网页版的客服组件,整体的效果如下:…

leetcode459. 重复的子字符串

题目描述解题思路执行结果leetcode 459. 重复的子字符串 .题目描述 给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。 示例 1: 输入: s "abab" 输出: true 解释: 可由子串 "ab" 重复两次构成。 示例 2: 输入: s "…