最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot項目創(chuàng)建使用+配置文件+日志文件詳解

 更新時間:2023年02月09日 11:16:23   作者:快到鍋里來呀  
Spring的出現(xiàn)是為了簡化 Java 程序開發(fā),而 SpringBoot 的出現(xiàn)是為了簡化 Spring 程序開發(fā),這篇文章主要介紹了SpringBoot項目創(chuàng)建使用+配置文件+日志文件,需要的朋友可以參考下

Spring的出現(xiàn)是為了簡化 Java 程序開發(fā),而 SpringBoot 的出現(xiàn)是為了簡化 Spring 程序開發(fā).

SpringBoot 就是 Spring腳手架

  • 快速集成框架,SpringBoot 提供了啟動添加依賴的功能
  • 內(nèi)置運行容器,無需配置 Tomcat 等 Web 容器, 直接運行和部署程序
  • 快速部署項目,無需外部容器即可啟動并運行項目
  • 可以完全拋棄繁瑣的 XML, 使用注解和配置的方式進行開發(fā)
  • 支持更多的監(jiān)控指標, 可以更好的了解項目的運行情況

1. Spring Boot 項目創(chuàng)建

我這里是專業(yè)版,不用下載插件直接可以創(chuàng)建

第一次打開 SpringBoot 項目需要加載很久, 因為當前 SpringBoot 框架并沒有在自己的本地倉庫

(2) 選取 SpringBoot 的版本, 和需要使用的工具包  

 (3) Finish后,可以看到創(chuàng)建成功了,直接運行一下,如果出現(xiàn)這個 JVM運行時間就說明創(chuàng)建成功了

 (4) 刪除掉無用的目錄 

2. 寫一個 Hello World 并運行

(1) 創(chuàng)建一個類,注意和 Application 平級,寫一個方法,返回 Hello World

  • 先加一個 @Controller,    也就是運行項目后,會先找到這個類
  • 然后再加 @RequestMapping,   這個的作用就是前面找到 @Controller后,有了這個@RequestMapping就會鎖定我寫的方法 sayHi()   ,注意里面字母都小寫
  • 加@ResponseBody的作用是,我想返回給頁面一個非靜態(tài)的數(shù)據(jù)(也就是給響應(yīng)Body中放一個字符串)

 然后直接運行,頁面輸入 127.0.0.1:8080/sayhi 可以看到訪問成功了

3. 配置文件的作用及格式

(1) 在整個項目中所有重要的數(shù)據(jù)都是在配置文件中配置的, 比如:

  • 項目的啟動端口
  • 數(shù)據(jù)庫的連接信息 (包含用戶名和密碼的設(shè)置)
  • 第三方系統(tǒng)的調(diào)用秘鑰等信息
  • 用于發(fā)現(xiàn)和定位問題的普通日志和異常日志等

在 Spring Boot 項目中如果沒有配置信息,就不能連接和操作數(shù)據(jù)庫, 甚至是不能保存可以用于排查問題的關(guān)鍵日志, 所以配置文件的作用是非常重要的

(2) 配置文件的分類:

  • 系統(tǒng)的配置文件, 比如: 連接字符串, 日志的相關(guān)設(shè)置
  • 用戶自定義的

(3) 配置文件的格式

  •  . properties
  •  . yml

一個項目中可以存在兩種配置文件 (properties 和 yml) , 但是不建議這樣搞

當一個項目的某個配置, 出現(xiàn)在兩種格式的配置文件中時, 那么配置項會以 properties 為主

 如果此時修改了配置文件的名字, 重新運行程序, 就訪問不到了

4. properties 配置文件的基本語法 

 properties 是以鍵值的形式配置的, key=value  中間是以 "=" 連接的 

關(guān)于 properties 中文亂碼的問題處理

因為 properties 是早期的配置文件, 不支持中文, 所以比如當重啟 idea 后, 中文就會亂碼

可以設(shè)置一下

(1) 配置當前項目中文亂碼的問題

 (2) 配置新項目中文亂碼的問題

5. 讀取配置文件

如果在項目中, 想要主動讀取配置文件中的內(nèi)容, 可以使用 @Value 注解來實現(xiàn)

@Value 注解使用 "${}" 的格式讀取

 可以看到如果要讀取多個配置文件中的信息, properties 配置文件中會有很多的容易信息, 比如

 要想解決這個問題, 就可以使用 yml 配置文件的格式化了

6. yml 配置文件說明

yml 意思是"另一種標記語言", yml 是一個可讀性高, 易于理解,用來表達數(shù)據(jù)序列化的格式. 特別適合用來表達或編輯數(shù)據(jù)結(jié)構(gòu), 各種配置文件等. yml 最大優(yōu)勢是可以跨語言, 比如 golang java python 都可以使用 yml 作為配置文件

(1) yml 基本語法

yml 是樹形結(jié)構(gòu)的配置文件, 基礎(chǔ)語法是 "key: value",  注意 中間使用冒號和空格連接的,空格不要省略

(2) yml 配置不同的數(shù)據(jù)類型

# 字符串
string.value: hello
 
# 布爾值
boolean.value: true
 
# 整數(shù)
int.value: 10
 
# 浮點數(shù)
float.value: 3.14159
 
# Null, ~ 表示 null
null.value: ~

(3) yml 單雙引號的問題

(4) 配置對象

在 yml 中配置對象, 這個時候需要使用注解 @ConfigurationProperties 來讀取

(5)配置集合

配置文件也可以配置 list 集合

7. properties 和 yml 的區(qū)別

  • properties 是以 key=value 的形式配置的鍵值類型的配置文件, 而 yml 使用的是類似于 json 格式的配置方式, key: value 中間用冒號和空格連接
  • properties 是早期并且也是默認的配置文件格式, 這種方式存在一定的冗余數(shù)據(jù), yml 可以很好的解決這種冗余問題
  • yml 通用性更好,支持更多語言, 并且支持更多的數(shù)據(jù)類型

8. SpringBoot 日志文件

8.1 日志的作用

日志是程序的重要組成部分,當程序報錯是就可以通過,日志來發(fā)現(xiàn)和定位問題,并且日志的作用還有

  • 記錄用戶登錄日志,方便分析用戶是正常登錄還是惡意破解用戶
  • 記錄系統(tǒng)的操作日志, 方便數(shù)據(jù)恢復(fù)和定位操作人
  • 記錄程序的執(zhí)行時間, 方便為以后優(yōu)化程序提供數(shù)據(jù)支持

Spring Boot 項目在啟動的時候就有默認的日志輸出

如果這個默認的日志輸出,就可以發(fā)現(xiàn)問題

  • Spring Boot 內(nèi)置了日志框架
  • 默認情況下, 輸出的日志并非是開發(fā)者定義和打印的, 那么開發(fā)者如何在程序中自定義打印日志
  • 日志默認是打印在控制臺上的, 但這樣是不能被保存的, 那么怎樣把日志持久化保存下來

8.2 自定義日志打印

自定義打印日志的實現(xiàn)步驟:

  • 在程序中得到日志對象
  • 使用日志對象的相關(guān)語法輸出要打印的內(nèi)容

 可以看到這里日志打印只出現(xiàn)了三個, 這是因為默認的日志級別是 info 的, 這里只會輸出級別大于等于 info 的

package com.example.demo;
 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
 
/**
 * @Description:
 * @Date 2022/12/27 14:04
 */
@Controller
@ResponseBody
public class UserController2 {
 
    // 1.先得到日志對象 (設(shè)置當前類的類型)
    private final static Logger log = LoggerFactory.getLogger(UserController2.class);
 
    @RequestMapping("/sayhii")
    public void sayHii() {
        // 2.使用日志對象提供的方法進行打印
        log.trace("trace 最小");
        log.debug("debug 調(diào)試");
        log.info("info 普通");
        log.warn("warn 警告");
        log.error("error 錯誤");
    }
}

8.3 日志的級別

日志級別可以幫助篩選出重要的信息

  • trace: 微量, 少許, 級別最低
  • debug: 調(diào)試日志
  • info: 普通信息日志
  • warn: 警告日志
  • error: 錯誤日志
  • fatal: 致命的日志, 系統(tǒng)輸出的, 不能自定義打印

當存在局部日志級別和全局日志級別設(shè)置時, 那么當訪問局部日志時, 使用的是局部日志級別, 

局部日志級別優(yōu)先級 > 全局的日志級別 

# 設(shè)置全局的日志級別 (properties)
logging.level.root=info
# 設(shè)置局部文件夾的日志級別
logging.level.com.example.demo.controller=trace
# 全局日志級別的配置  yml
logging:
  level: 
    root: error

8.4 日志持久化

日志持久化: 將日志永久的保存到磁盤的某個位置, 有兩種方式

  • 在配置文件中設(shè)置日志的保存路徑, 當設(shè)置了保存路徑之后, 那么日志就會自動的進行持久化
  • 在配置文件中設(shè)置日志保存的名稱, 日志會自動進行持久化

(1) 設(shè)置日志的保存路徑

# 設(shè)置日志的保存目錄 (properties)
logging.file.path=D:/IDEA/
 
# 如果想使用 \ 就要注意轉(zhuǎn)義的問題,這里用\\
logging.file.path=D:\\IDEA\\
# 設(shè)置日志保存的目錄  (yml)
logging:
  file:
    path: D:/IDEA/

可以看到日志保存到了這個目錄下的位置 

 (2) 設(shè)置日志的保存名稱

# 設(shè)置日志的保存名稱 (properties)
logging.file.name=D:/IDEA/spring-boot.log

8.5 更簡單的實現(xiàn)日志打印lombok

添加 lombok 到當前項目

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.20</version>
    <optional>true</optional>
</dependency>

(1) 使用 @Slf4j 得到日志對象 log

(2) 使用 log 對象自定義打印日志

package com.example.demo.service;
 
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
 
//@RestController = @Controller + @ResponseBody
@RestController
@Slf4j   // 代替了之前需要通過 LoggerFactory.getLogger 操作
public class UserService {
 
    @RequestMapping("/sayhi2")
    public void sayHi2() {
        log.trace("trace");
        log.debug("debug");
        log.info("info");
        log.warn("warn");
        log.error("error");
    }
}

到此這篇關(guān)于SpringBoot項目創(chuàng)建使用+配置文件+日志文件的文章就介紹到這了,更多相關(guān)SpringBoot項目創(chuàng)建使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot實現(xiàn)分頁功能

    SpringBoot實現(xiàn)分頁功能

    這篇文章主要為大家詳細介紹了SpringBoot實現(xiàn)分頁功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • springboot集成druid,多數(shù)據(jù)源可視化,p6spy問題

    springboot集成druid,多數(shù)據(jù)源可視化,p6spy問題

    這篇文章主要介紹了springboot集成druid,多數(shù)據(jù)源可視化,p6spy問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • java 打印一字符串,并在main()方法內(nèi)調(diào)用它

    java 打印一字符串,并在main()方法內(nèi)調(diào)用它

    編寫一個方法(名字自定,但要符合Java編碼規(guī)范),方法內(nèi)打印一字符串,并在main()方法內(nèi)調(diào)用它。
    2017-02-02
  • java多線程編程之管道通信詳解

    java多線程編程之管道通信詳解

    這篇文章主要為大家詳細介紹了java多線程編程之線程間的通信,探討使用管道進行通信,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • java string 轉(zhuǎn)date方法如何實現(xiàn)

    java string 轉(zhuǎn)date方法如何實現(xiàn)

    在開發(fā)應(yīng)用中經(jīng)常會使用到j(luò)ava string 轉(zhuǎn)date這種不是很常見的做法,本文將以此問題提供詳細解決方案,需要了解的朋友可以參考下
    2012-11-11
  • Spring Boot Jar 文件能直接運行的操作方法

    Spring Boot Jar 文件能直接運行的操作方法

    本文將深入探討 Spring Boot 的打包過程及其運行原理,揭示其 JAR 文件如何巧妙地集成依賴項、嵌入 Web 容器并實現(xiàn)自動配置,感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • 深入理解Mybatis一級緩存

    深入理解Mybatis一級緩存

    客戶端向數(shù)據(jù)庫服務(wù)器發(fā)送同樣的sql查詢語句,如果每次都去訪問數(shù)據(jù)庫,會導(dǎo)致性能的降低,那么怎么提高呢?下面小編給大家分享下mybatis為我們提供了一級緩存的策略
    2016-12-12
  • 深入淺出JAVA MyBatis-快速入門

    深入淺出JAVA MyBatis-快速入門

    這篇文章主要介紹了在今天這篇博文中,我將要介紹一下mybatis的框架原理,以及mybatis的入門程序,實現(xiàn)用戶的增刪改查,她有什么優(yōu)缺點以及mybatis和hibernate之間存在著怎么樣的關(guān)系,大家這些問題一起通過本文學(xué)習(xí)吧
    2021-06-06
  • springboot整合quartz定時任務(wù)框架的完整步驟

    springboot整合quartz定時任務(wù)框架的完整步驟

    在做項目時有時候會有定時器任務(wù)的功能,比如某某時間應(yīng)該做什么,多少秒應(yīng)該怎么樣之類的,下面這篇文章主要給大家介紹了關(guān)于springboot整合quartz定時任務(wù)框架的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • SpringCloud Feign參數(shù)問題及解決方法

    SpringCloud Feign參數(shù)問題及解決方法

    這篇文章主要介紹了SpringCloud Feign參數(shù)問題及解決方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12

最新評論

禹州市| 武冈市| 泸水县| 芦溪县| 互助| 锡林浩特市| 咸丰县| 甘谷县| 兴仁县| 绥滨县| 浙江省| 诸城市| 永胜县| 宁安市| 界首市| 星座| 建始县| 霍州市| 晴隆县| 博爱县| 建昌县| 奉贤区| 太康县| 蒲江县| 丹江口市| 新乡市| 西充县| 民乐县| 台湾省| 皮山县| 平利县| 含山县| 邹平县| 江门市| 开原市| 四子王旗| 宁远县| 中阳县| 古丈县| 易门县| 邯郸市|