springboot基础篇(快速入门+要点总结)

目录

一、SpringBoot简介

二、创建SpringBoot(通过Idea脚手架搭建项目)

三、properties配置文件

 properties 配置文件说明

①. properties 基本语法

②. 读取配置⽂件

③. properties 缺点

2. yml 配置⽂件说明

①. yml 基本语法

②. yml 使用进阶

四、日志框架

在程序中得到日志对象

使用日志对象打印日志

日志级别 

日志持久化


一、SpringBoot简介

在开始了解Spring Boot之前,需要先了解Spring,因为Spring Boot的诞生是和Spring息息相关的,Spring Boot是Spring发展到一定程度的产物,但是Spring Boot并不是spring的替代品,Spring Boot是为了让程序员根号的使用Spring而产生的。Spring Boot称之为搭建程序的脚手架,最主要的作用就是帮助我们快速搭建庞大的spring项目,进而减少一些xml的配置,做到开箱即用的效果。

Spring Boot的优势

  • 快速集成框架,Spring Boot提供了添加启动依赖功能,用于快速使项目集成各种框架。

  • 内置tomcat容器,无需配置web容器,直接运行和部署程序。

  • 快速部署项目,无需外部容器,打成jar包,快速启动运行项目。

  • 不需要繁琐的xml配置,使用注解和配置的方式快速开发。

二、创建SpringBoot(通过Idea脚手架搭建项目)

现在我们来说一下,如何在Idea上直接搭建SpringBoot项目:

1. 在左侧列表选择Spring Initializer,代表这是一个Spring Boot项目

2. 项目来源地址,因为spring是国外的服务器,所以我们通常使用阿里云的网站来搭建会快一点。

3. 点击设置,更改URL为:https://start.aliyun.com/

然后输入我们的项目名称Name,还有一个Java版本,打包类型,然后点击Next

1. 选择Spring Boot项目,由于这是国内镜像,阿里云的版本一般比官网低一点

2. 同样,我们在搜索框里搜索我们需要添加的依赖,比如说这里添加一个web依赖。然后直接点击Finish

点击Finish之后会直接打开我们刚刚创建的项目,可以看到这里还加了一个demo给我们,

OK,我们直接运行,出现下面页面也是代表我们构建运行项目成功。

热部署:

根据上面的步骤,我们已经完成了 Spring Boot项目的创建和运行,但是有一个问题就是,每次修改代码后都需要重新启动代码才会生效,可以配置热部署来解决这个问题。

热部署的配置如下:

这样修改对于我们修改web资源,可以立即生效,对于修改java代码,部分生效 

三、properties配置文件

配置文件作用:

整改项目中所有重要的数据都在配置文件中配置的,比如:

  • 数据库的连接信息(包含用户名和密码的设置)

  • 项目的启动端口

  • 第三方系统的调用密钥信息等

  • 用发现和定位问题的普通日志和异常日志等

配置文件的格式:

.properties
.yml

理论上来讲 .properties 可以和 .yml 共存,但实际的业务当中,我们通常会采取⼀种统⼀的配置⽂件格式,这样可以更好的维护(降低故障率)。当 properties 和 yml ⼀起存在⼀个项⽬中时, .properties 配置⽂件的优先级最⾼,但加载完 .properties ⽂件之后,也会加载 .yml ⽂件的配置信息。

 properties 配置文件说明

properties 配置⽂件是最早期的配置⽂件格式,也是创建 Spring Boot 项⽬默认的配置⽂件。

①. properties 基本语法

properties 是以键值的形式配置的,key 和 value 之间是以 “=” 连接的。

# 配置项⽬端⼝号
server.port=8084
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/dbname?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root

②. 读取配置⽂件

使⽤ @Value 注解来实现。@Value 注解使⽤ “${}” 的格式读取。

@Component
public class ReadYml {@Value("${server.port}")private String port;
​@PostConstructpublic void postConstruct() {System.out.println("Read YML,port:" + port);}
}

③. properties 缺点

properties 配置是以 key-value 的形式配置的,properties 配置⽂件中会有很多的冗余的信息。

2. yml 配置⽂件说明

yml 是 YAML 是缩写,它的全称 Yet Another Markup Language 翻译成中⽂就是“另⼀种标记语⾔”。

yml 优点分析:

  • yml 是⼀个可读性⾼,写法简单、易于理解,它的语法和 JSON 语⾔类似。

  • yml ⽀持更多的数据类型,它可以简单表达清单(数组)、散列表,标量等数据形态。它使⽤空⽩符号缩进和⼤量依赖外观的特⾊,特别适合⽤来表达或编辑数据结构、各种配置⽂件等。

  • yml ⽀持更多的编程语⾔,它不⽌是 Java 中可以使⽤在 Golang、PHP、Python、Ruby、JavaScript、Perl 中。

①. yml 基本语法

yml 是树形结构的配置⽂件,它的基础语法是“key: value”,注意 key 和 value 之间使⽤英⽂冒汗加空格的⽅式组成的,其中的空格不可省略

spring:datasource:url: jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8username: rootpassword: root

②. yml 使用进阶

yml 配置不同数据类型及 null

# 字符串
value1: Hello
# 布尔值,true或false
value2: true
value3: false
# 整数
value4: 10
value: 0b1010_0111_0100_1010_1110 # ⼆进制
# 浮点数
value5: 3.14159
value6: 314159e-5 # 科学计数法
# Null,~代表null
value7: ~

对于基本数据类型直接 key: value 即可。

yml 读取配置的⽅式和 properties 相同,使⽤ @Value 注解即可

@Component
public class ReadYml {@Value("${value1}")private String hello;@PostConstructpublic void postConstruct() {System.out.println("Read YML,Hello:" + hello);}
​
}

四、日志框架

日志的作用

日志是程序的重要组成部分,程序在生产环境中报错了,不让你打开控制台看日志,那么你应该怎么查看报错日志呢,因此日志框架对于我们程序员来说至关重要。

日志框架除了发现和定位问题之外,还可以通过日志实现如下功能;

  • 记录用户的登录日志,方便分析用户是正常登录还是恶意破解的用户。

  • 记录系统的操作日志,方便数据回复和定位操作人。

  • 记录程序的执行时间,方便优化程序提供数据支持。

日志怎么用??

Spring Boot 项目在启动的时候默认就有日志输出,如下图所示

1.Spring Boot 内置了日志框架(不然也输出不了日志)。

2.默认情况下,输出的日志并非是开发者定义和打印的,那开发者怎么在程序中自定义打印日志呢?

3.日志默认是打印在控制台上的,而控制台的日志是不能被保存的,那么怎么把日志永久的保存下来呢? 

在程序中得到日志对象

在程序中获取日志对象需要使用日志工厂 LoggerFactory,如下代码所示:

// 1.得到日志对象
private static Logger logger = LoggerFactory.getLogger(UserController.class);

注意:Logger 对象是属于 org.slf4j 包下的,不要导入错包。

因为 Spring Boot 中内置了日志框架 Slf4j,所以咱们可以直接在程序中调用 slf4j 来输出日志

使用日志对象打印日志
// 2.使用日志打印日志logger.info("--------------要输出日志的内容----------------");
日志级别 

日志的级别分为:

  • trace:微量,少许的意思,级别最低;

  • info:普通的打印信息;

  • debug:需要调试时候的关键信息打印;

  • warn:警告,不影响使用,但需要注意的问题;

  • error:错误信息,级别较高的错误日志信息;

  • fatal:致命的,因为代码异常导致程序退出执行的事件。

日志级别配置只需要在配置文件中设置“logging.level”配置项即可,如下所示:

longging:level:root: error

配置跟路径的日志级别。

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/user")
public class UserController {
// 1.得到日志对象
private static Logger logger =
LoggerFactory.getLogger(UserController.class);
@Value("${server.port}")
private String port;
@Value("${spring.datasource.url}")
private String url;
@RequestMapping("/sayhi")
public String sayHi() {
// 2.使用日志打印日志
logger.trace("================= trace ===============");
logger.debug("================= debug ===============");
logger.info("================= info ===============");
logger.warn("================= warn ===============");
logger.error("================= error ===============");
return "Hi," + url;
}
}

默认日志输出级别 清除掉配置文件中的日志设置,观察控制台输入的日志级别。

得到以下结论,日志的输出级别,默认是 info。

日志持久化

以上的日志都是输出在控制台上的,然而在生产环境上咱们需要将日志保存下来,以便出现问题之后追溯问 题,把日志保存下来的过程就叫做持久化。想要将日志进行持久化,只需要在配置文件中指定日志的存储目录或者是指定日志保存文件名之后,Spring Boot 就会将控制台的日志写到相应的目录或文件下了。配置日志文件的保存路径:

logging: file://设置日志文件的目录path: D:\home\logs//设置日志文件的文件名name: D:\home\logs\spring-1024.log  

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

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

相关文章

上海AI lab发布MathBench,GPT-4o的数学能力有多强?

大模型数学能力哪家强? 最近,上海AI lab构建了一个全面的多语言数学基准——MathBench。与现有的基准不同的是,MathBench涵盖从小学、初中、高中、大学不同难度,从基础算术题到高阶微积分、统计学、概率论等丰富类别的数学题目&a…

【Linux】升级make(版本4.4.1)、升级gdb(版本14.1)、升级autoconf(版本2.71)

centos7升级make(版本4.4.1): make:编译和构建工具。Linux中很多软件包需要make编译构建。官网:Make - GNU Project - Free Software Foundation 本次升级前的make版本是3.82,准备安装的版本是4.4.1。make…

【Delphi 开箱即用 4】动态切换主题皮肤(明亮 or 暗黑)

Delphi的原始窗口界面看起来并不够吸引人。尝试下载并安装第三方皮肤可能会导致应用程序尺寸急剧增加,并且可能会出现不稳定的情况。事实上,Delphi自带了皮肤功能,完全可以满足我们对窗口界面的美化需求,并且还支持动态切换皮肤。…

Python I/O操作笔记

打开文件: 使用 open() 函数,其中文件路径可以是相对路径或绝对路径。 模式除了常见的 r(只读)、w(写入,会覆盖原有内容)、a(追加)外,还有一些其他组合模式&…

基于springboot实现旅游管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现旅游管理系统演示 摘要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本旅游管理系统就是在这样的大环境下诞生,其可以帮助使用者在…

来自Java的“菱形继承“,你听说过吗?

一、菱形继承的概念 菱形继承又叫做钻石继承,指的是不同的类同时继承自相同的父类,存在一个子类同时继承这些不同的类,即我们常说的“多继承”问题。 例如:B类和C类分别继承A类,而D类同时继承B类和C类。 如此图所示 二…

Oladance、韶音、南卡开放式耳机选哪个?2024年主流产品硬核测评!

近期,不少朋友向我咨询关于挑选开放式耳机的建议,希望找到既适合自己又具有高品质的选项。鉴于市场上开放式耳机品牌繁多,每款产品在音质、佩戴感受及整体性能上的表现各有千秋,正确选择一款耳机成为了音乐爱好者们关注的焦点。错…

R绘图学习笔记

1、R语言绘制海岸线边界 参考: Drawing beautiful maps programmatically with R, sf and ggplot2 — Part 1: Basics 使用R绘制世界地图及纬度统计图 Drawing maps with R. A basic tutorial:https://dr2blog.hcommons.org/2020/03/23/drawing-maps-wit…

【408精华知识】指令字长、存储字长、机器字长大总结!

文章目录 一、三种字长二、三种字长之间的关系三、三种字长与部件位数之间的关系 一、三种字长 机器字长:等于字长,CPU一次能够处理的数据的位数。通常等于寄存器、ALU的位数。例子:windows 64位/32位,这里的64位和32位指的就是该…

Pycharm最新安装教程(最新更新时间2024年5月27日)

ps:本教程Pycharm安装,最新更新时间:2024年5月27日,公众号持续更新关注公众号防失联哦 Pycharm 再次更新了一个小版本。又回到老话题,2023.3.2这个版本是否还能安装,笔者也亲测了一下。还是沿用本站之前的…

Livox-SDK2 用vs2017编译

Livox-SDK2 Livox-SDK2代码去上面下载,文章中给出的是用vs2019进行编译的,生成项目时用的 > cmake .. -G "Visual Studio 16 2019" -A x64 但如果我想用vs2017进行编译,那么只需要将上面语句改为如下: cmake .. -…

Spring IOC容器与Bean管理详解

一.IOC与DI 1. 传统的开发方式区别 对象直接引用导致对象硬性关联,程序难以扩展维护 loC容器是Spring生态的地基,用于统─创建与管理对象依赖 2. Spring IOC 控制反转 loC控制反转,全称Inverse of Control,是一种设计理念 由代理人来创建与管理对象,消费者通…

请允许自己偶尔情绪不稳定

最近看网上的讨论,发现一件事:许多人都把「情绪稳定」当作一个很难得的优点,狂热地去追捧。 什么叫情绪稳定呢?大抵指这些: 遇到问题时不容易发火或沮丧,而是能立刻切换成解决问题的视角; 心情…

Windows系统使用Docker部署Focalboard团队协作工具详细流程

文章目录 前言1. 使用Docker本地部署Focalboard1.1 在Windows中安装 Docker1.2 使用Docker部署Focalboard 2. 安装Cpolar内网穿透工具3. 实现公网访问Focalboard4. 固定Focalboard公网地址 前言 本篇文章将介绍如何使用Docker本地部署Focalboard项目管理工具,并且结…

微信小程序打印功能怎么用?

在数字化时代,微信小程序为我们提供了许多便捷的服务,其中就包括打印功能。而琢贝云打印小程序,作为一款功能强大、操作简便的线上打印平台,更是受到了广大用户的青睐。下面,我将为大家介绍如何使用琢贝云打印小程序完…

下雨天的短视频:成都鼎茂宏升文化传媒公司

下雨天的短视频:捕捉雨中的诗意与温情 在快节奏的现代生活中,短视频以其独特的魅力成为了人们记录生活、分享情感的重要工具。而下雨天,这个常常带有诗意与温情的场景,更是为短视频创作者们提供了无尽的灵感源泉。成都鼎茂宏升文…

Spring常用注解(超全面)

官网:核心技术SPRINGDOC.CN 提供 Spring 官方文档的翻译服务,可以方便您快速阅读中文版官方文档。https://springdoc.cn/spring/core.html#beans-standard-annotations 1,包扫描组件标注注解 Component:泛指各种组件 Controller、…

9. C++通过epoll+fork的方式实现高性能网络服务器

epollfork 实现高性能网络服务器 一般在服务器上,CPU是多核的,上述epoll实现方式只使用了其中的一个核,造成了资源的大量浪费。因此我们可以将epoll和fork结合来实现更高性能的网络服务器。 创建子进程函数–fork( ) 要了解线程我们先来了解…

近五年营收和净利润大幅“败北”,尚品宅配今年押注扩张加盟

​ 《港湾商业观察》廖紫雯 两个月前经历过高管公开信的尚品宅配(300616.SZ),无论是2023年年报,还是今年一季报,虽然公司净利润表现尚佳,但收入端的持续承压仍然备受关注。 今年一季报,尚品宅…

Prometheus监控平台配置--监控集群资源信息

之前我们介绍的都是对单机的监控,今天介绍下用Prometheus对集群多台机器的系统资源进行监控。 我们需要在被压测服务器上安装 node_exporter和mysql_exporter,通过这两个工具对操作系统和mysql进行监控,将收集的数据存储到Prometheus&#xf…