国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

一篇文章帶你了解SpringBoot目錄結構

這篇具有很好參考價值的文章主要介紹了一篇文章帶你了解SpringBoot目錄結構。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

SpringBoot是整合Spring技術棧的一站式框架,是簡化Spring技術棧的快速開發(fā)腳手架,是一個能夠快速構建生產級別的Spring應用的工具。SpringBoot是目前流行的微服務框架,倡導“約定優(yōu)于配置”,簡化Spring項目搭建及開發(fā)過程。springboot提供了很多核心的功能,比如自動化配置、starter簡化maven配置、內嵌servlet容器、應用監(jiān)控等功能。本文就來講解SpringBoot項目的目錄結構。

springboot src,spring boot,后端,java

先看第一層目錄

springboot src,spring boot,后端,java

/.mvn? ? (這是 Maven Wrapper 的存放位置。Maven Wrapper 是一個包裝器工具,用于在沒有預先安裝 Maven 的系統(tǒng)上運行 Maven 項目。它包含一個用于下載和安裝特定 Maven 版本的腳本。如果刪除這個文件夾會導致無法使用 Maven Wrapper 來自動下載和管理特定版本的 Maven。開發(fā)人員必須手動安裝并配置全局的 Maven,或者使用其他構建工具來代替 Maven。)

/src????(項目的源碼層,日常開發(fā)都在此目錄下的進行)

/target? ? ?(放置編譯后的.class文件、配置文件等、 target文件夾是用來存放項目構建后的文件和目錄、jar包、war包、編譯的class文件,都是maven構建時生成的。)

/.gitignore? ( Git 是一個版本控制系統(tǒng),用于跟蹤項目中的代碼更改。.gitignore 文件用于指定應該被 Git 忽略的文件和目錄,以防止它們被添加到版本控制中。這個文件通常包含一些自動生成的文件、編譯輸出、臨時文件等。刪除 .gitignore 文件可能會導致一些不應被版本控制的文件和目錄被納入版本控制中,例如編譯輸出、臨時文件等。這會增加代碼庫的體積,使版本控制變得混亂。)

/HELP.md? (一個Markdown格式的文件,通常包含項目的幫助信息、說明和指南。這是一個包含項目幫助信息的 Markdown 文件。通常,這個文件會提供項目的概述、配置說明、運行指南等信息,方便其他開發(fā)人員了解和使用項目。刪除 HELP.md 文件會使其他開發(fā)人員難以獲取項目的相關信息,降低項目的可維護性和可理解性。項目的說明、配置指南等重要信息將不再可用。)

/mvnw? ?( mvnw 是 Maven Wrapper 的可執(zhí)行腳本文件。它是 Spring Boot 項目中常見的一個文件,用于簡化構建和管理項目依賴的過程。Maven 是一個用于構建和管理 Java 項目的強大工具,它使用項目配置文件(pom.xml)來定義項目的結構、依賴和構建過程。然而,使用傳統(tǒng)的 Maven 構建項目需要在本地環(huán)境中安裝和配置 Maven 工具。

? ? 為了簡化項目的構建和管理過程,并確保項目在不同環(huán)境中的一致性,Spring Boot 引入了 Maven Wrapper。Maven Wrapper 是一個用于包裝 Maven 的腳本和庫文件的工具,可以將 Maven 包裝在項目內部,不依賴于本地環(huán)境中是否已安裝 Maven。

在 Spring Boot 項目中,mvnw 文件是 Maven Wrapper 的可執(zhí)行腳本文件,它會根據項目中的配置自動下載和使用特定版本的 Maven。當你在項目目錄下執(zhí)行 mvnw 命令時,它會檢查項目中是否已經存在所需的 Maven 版本,如果不存在,會自動下載并使用指定的 Maven 版本進行構建。

使用 Maven Wrapper 可以確保項目的構建過程獨立于本地環(huán)境,并提供了更好的可移植性和項目的一致性。你只需要使用項目中提供的 mvnw 文件,無需手動安裝和配置 Maven,就可以在任何環(huán)境中構建和管理項目。

這是 Maven Wrapper 的可執(zhí)行腳本(Unix/Linux 系統(tǒng))。它允許在沒有全局 Maven 安裝的情況下運行 Maven 項目。運行 mvnw 腳本會自動下載并使用指定版本的 Maven 來執(zhí)行項目構建、測試等操作。

/mvnw.cmd? (這是 Maven Wrapper 的可執(zhí)行腳本(Windows 系統(tǒng))。與上面的 mvnw 腳本類似,它也允許在沒有全局 Maven 安裝的情況下運行 Maven 項目,但是用于 Windows 系統(tǒng)的命令行環(huán)境。刪除這兩個文件會導致無法使用 Maven Wrapper 運行 Maven 命令。開發(fā)人員將無法使用提供的腳本快速執(zhí)行構建、測試和其他 Maven 相關操作。)

/pom.xml? (pom.xml是Maven項目的核心配置文件,用于管理項目的依賴、插件、構建配置等。在Spring Boot項目中,pom.xml文件也扮演著重要的角色。在pom.xml文件中,可以配置項目的資源文件。 在Spring Boot的pom.xml文件中,通常會有一個<resources>標簽文件,用于指定資源文件的路徑和名稱 。)

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.7.17-SNAPSHOT</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>demo</name>
	<description>Demo project for Spring Boot</description>
	<properties>
		<java.version>11</java.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>2.3.1</version>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<scope>runtime</scope>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>com.mysql</groupId>
			<artifactId>mysql-connector-j</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-configuration-processor</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter-test</artifactId>
			<version>2.3.1</version>
			<scope>test</scope>
		</dependency>
		<!--        Swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
		<!--        Swagger-UI -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<excludes>
						<exclude>
							<groupId>org.projectlombok</groupId>
							<artifactId>lombok</artifactId>
						</exclude>
					</excludes>
				</configuration>
			</plugin>
		</plugins>
	</build>
	<repositories>
		<repository>
			<id>spring-milestones</id>
			<name>Spring Milestones</name>
			<url>https://repo.spring.io/milestone</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
		<repository>
			<id>spring-snapshots</id>
			<name>Spring Snapshots</name>
			<url>https://repo.spring.io/snapshot</url>
			<releases>
				<enabled>false</enabled>
			</releases>
		</repository>
	</repositories>
	<pluginRepositories>
		<pluginRepository>
			<id>spring-milestones</id>
			<name>Spring Milestones</name>
			<url>https://repo.spring.io/milestone</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</pluginRepository>
		<pluginRepository>
			<id>spring-snapshots</id>
			<name>Spring Snapshots</name>
			<url>https://repo.spring.io/snapshot</url>
			<releases>
				<enabled>false</enabled>
			</releases>
		</pluginRepository>
	</pluginRepositories>

</project>

重點是src目錄

?springboot src,spring boot,后端,java

|---/src/main

?|---|---/src/main/java:目錄下放置所有的java文件(源代碼)

?|---|---|---/src/main/java/com/example/demo :核心源碼存放文件

|---|---|---/src/main/java/com/example/demo/controller :控制層

?|---|---|---/src/main/java/com/example/demo/service:業(yè)務代碼層

?|---|---|---/src/main/java/com/example/demo/mapper:持久層

|---|---|---/src/main/java/com/example/demo/vo :通常用于與前端交互,封裝前端調用某個接口之后所需的所有數據。在前后端分離的時代,VO主要應用于表示視圖層的類。

|---|---|---/src/main/java/com/example/demo/dto :則主要應用于數據傳輸層,特別是在Controller層和Service層。在Controller層,DTO用于接收參數,無論是單個參數還是多個參數,都可以通過創(chuàng)建一個DTO對象來進行接收。使用DTO傳參相比使用注解(@RequestParam等)具有更高的可讀性和維護性。在Service層,處理復雜的邏輯后,將處理好的DTO進行copyBean即可無傷轉換為持久化對象(Bo)??偟膩碚f,VO和DTO都是為了實現(xiàn)程序中的數據傳輸和交互,但它們的使用場景不同。前端與后端交互時,使用VO;而在服務層之間傳輸數據時,使用DTO。

|---|---|---/src/main/java/com/example/demo/entity:存放實體類,與數據庫表名和字段名對應

|---|---|---/src/main/java/com/example/demo/config:一些配置類,例如redis、swagger等配置信息

|---|---|---/src/main/java/com/example/demo/utils:一些工具類,例如時間格式化工具、加密工具、返回結果封裝工具、文件上傳工具等

|---|---/src/main/resource:?存放資源文件、如靜態(tài)資源文件、配置文件、頁面文件等

|---|---|---/src/main/resource/mapper:存放MyBatis操作數據庫的xml文件

|---|---|---/src/main/resource/static:存放靜態(tài)資源例如css樣式、圖片等

|---|---|---/src/main/resources/templates:存放模板文件如thymeleaf模板文件

|---|---|---/src/mian/resource/application.properties::?SpringBoot項目的配置文件,SpringBoot支持.properties和.yml文件

application.properties文件內容

#端口號配置
server.port=9099

#數據源相關配置
spring.datasource.url=jdbc:mysql://localhost:3306/finshing?serverTimezone=UTC&&characterEncoding=UTF-8&allowMultiQueries=true
spring.datasource.password=123456
spring.datasource.username=root

#mybatis映射對應的實體類位置
mybatis.type-aliases-package=com.example.demo.entity

#mybatis的映射xml文件路徑位置
mybatis.mapper-locations=classpath:/mapper/*Mapper.xml

#開啟數據庫下劃線映射Java駝峰
mybatis.configuration.map-underscore-to-camel-case: true

spring.mvc.view.prefix=/pages/
spring.mvc.view.suffix=.html

spring.mvc.pathmatch.matching-strategy = ant_path_matcher

# 配置上傳文件大小限制
# 單個文件大小配置
spring.servlet.multipart.maxFileSize=30MB
# 請求總大小配置
spring.http.multipart.maxRequestSize = 30MB

|---/src/test? 單元測試類java文件文章來源地址http://www.zghlxwxcb.cn/news/detail-843149.html

到了這里,關于一篇文章帶你了解SpringBoot目錄結構的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 一篇文章帶你詳細了解axios的封裝

    一篇文章帶你詳細了解axios的封裝

    對請求的封裝在實際項目中是十分必要的,它可以讓我們統(tǒng)一處理 http 請求。比如做一些攔截,處理一些錯誤等。本篇文章將詳細介紹如何封裝 axios 請求,具體實現(xiàn)的功能如下 基本配置 配置默認請求地址,超時等 請求攔截 攔截 request 請求,處理一些發(fā)送請求之前做的處理,譬如給

    2024年02月07日
    瀏覽(30)
  • 【C++】一篇文章帶你深入了解string

    【C++】一篇文章帶你深入了解string

    C語言中,字符串是以’\\0’結尾的一些字符的集合,為了操作方便,C標準庫中提供了一些str系列的庫函數,但是這些庫函數與字符串是分離開的,不太符合OOP的思想,而且底層空間需要用戶自己管理,稍不留神可能還會越界訪問。 string的文檔介紹 字符串是表示字符序列的類

    2024年04月08日
    瀏覽(26)
  • 【C++】一篇文章帶你深入了解vector

    【C++】一篇文章帶你深入了解vector

    vector的文檔介紹 vector是表示可變大小數組的序列容器。 就像數組一樣,vector也采用的連續(xù)存儲空間來存儲元素。也就是意味著可以采用下標對vector的元素進行訪問,和數組一樣高效。但是又不像數組,它的大小是可以動態(tài)改變的,而且它的大小會被容器自動處理。 本質講,

    2024年04月22日
    瀏覽(36)
  • 一篇文章帶你了解 什么是u(ustd)帶你了解他的前世今生

    一篇文章帶你了解 什么是u(ustd)帶你了解他的前世今生

    在數字貨幣的繁榮世界中,USDT無疑是其中一位重要的角色。它的前世今生,是一個從無到有,從小到大,經歷了種種波折和爭議的故事。 2014年11月下旬,一個名為Realcoin的注冊地為馬恩島和香港的公司決定改變自己的名字,取名為Tether。這個決定預示著一種新的數字貨幣即將

    2024年01月23日
    瀏覽(23)
  • WAF是什么?一篇文章帶你全面了解WAF

    Web應用程序防火墻(Web Application Firewall,WAF)是一種用于保護Web應用程序的安全設備。Web應用程序是指通過Web瀏覽器或其他Web客戶端訪問的應用程序。WAF的目的是保護Web應用程序免受黑客、網絡攻擊和數據泄漏等安全威脅的攻擊。 在這篇文章中,我們將深入探討WAF的工作原理

    2024年02月10日
    瀏覽(22)
  • 【網絡安全】一篇文章帶你了解CTF那些事兒

    【網絡安全】一篇文章帶你了解CTF那些事兒

    CTF(Capture The Flag)中文一般譯作奪旗賽,在網絡安全領域中指的是網絡安全技術人員之間進行技術競技的一種比賽形式。CTF起源于1996年DEFCON全球黑客大會,以代替之前黑客們通過互相發(fā)起真實攻擊進行技術比拼的方式。已經成為全球范圍網絡安全圈流行的競賽形式,2013年全

    2024年02月08日
    瀏覽(24)
  • 一篇文章帶你了解抖音來客功能的使用方法和注意事項

    一篇文章帶你了解抖音來客功能的使用方法和注意事項

    抖音是近年來備受歡迎的社交媒體平臺之一,其中的“來客”功能更是讓許多人喜愛。那么什么是抖音來客呢?抖音來客是指在直播過程中,可以邀請其他抖音用戶進行互動和參與,從而增加直播的熱度和粉絲數量。下面不若與眾科技就來介紹一下抖音來客的具體使用方法和

    2024年02月08日
    瀏覽(24)
  • 【云原生】什么是云原生?如何學習云原生?一篇文章帶你了解云原生

    【云原生】什么是云原生?如何學習云原生?一篇文章帶你了解云原生

    云原生,相信這個名詞大家并不陌生;云原生在近期可謂是爆火,伴隨云計算的滾滾浪潮,云原生(CloudNative)的概念應運而生,云原生很火,火得一塌糊涂??墒乾F(xiàn)在很多人還是不知道什么是云原生,所以今天我們就來聊一聊近期很火的這個名詞:云原生吧 。 大家平時經常提

    2024年02月02日
    瀏覽(31)
  • 一篇文章帶你了解什么是云計算,SaaS PaaS IaaS的區(qū)別

    一篇文章帶你了解什么是云計算,SaaS PaaS IaaS的區(qū)別

    目錄 一、本地部署 vs 云計算 彈性 運維成本 數據安全 二、SaaS PaaS IaaS的區(qū)別 在了解云計算之前,我們先要了解什么是“計算”,支撐計算我們需要硬件基礎設施和軟件環(huán)境。 硬件包括服務器、存儲、網絡等...? 軟件環(huán)境包括數據庫、中間件、操作系統(tǒng)等... 云就是個地理概

    2024年04月27日
    瀏覽(31)
  • 【Java遞歸】一篇文章帶你了解,什么是遞歸 ,遞歸的特點,遞歸應用場景,遞歸練習題

    【Java遞歸】一篇文章帶你了解,什么是遞歸 ,遞歸的特點,遞歸應用場景,遞歸練習題

    博主: 東方幻想郷 專欄分類: Java | 從入門到入墳 ??遞歸是一種在方法通過 調用自身 來解決某些問題的技術,它可以將一些問題,分為更小,更細類似的子問題,逐步解決, 直到問題被簡化到某個基本情況 ,最后可以直接拿到答案。 遞歸是一種函數調用自身的方法 遞歸

    2024年02月06日
    瀏覽(45)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包