欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解SpringBoot目錄結構劃分

 更新時間:2024年08月29日 10:36:35   作者:進階的瘋狗der  
代碼目錄結構是一個在項目開發(fā)中非常重要的部分,本文主要介紹了詳解SpringBoot目錄結構劃分,具有一定的參考價值,感興趣的可以了解一下

前言

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

先看第一層目錄

/.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目錄

|---/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都是為了實現程序中的數據傳輸和交互,但它們的使用場景不同。前端與后端交互時,使用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文件

到此這篇關于詳解SpringBoot目錄結構劃分的文章就介紹到這了,更多相關SpringBoot目錄結構內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Hibernate懶加載之<class>標簽上的lazy

    Hibernate懶加載之<class>標簽上的lazy

    這篇文章主要介紹了Hibernate懶加載之<class>標簽上的lazy,分享了相關代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • Java實現定時任務

    Java實現定時任務

    這篇文章主要為大家詳細介紹了Java實現定時任務,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • 簡述Java圖像傾斜方法及實例

    簡述Java圖像傾斜方法及實例

    這篇文章主要介紹了Java圖像傾斜的方法及實例,需要的朋友可以參考下
    2017-09-09
  • Java中使用阻塞隊列控制線程集實例

    Java中使用阻塞隊列控制線程集實例

    這篇文章主要介紹了Java控制阻塞隊列線程集實例,本文用一個程序展示了如何使用阻塞隊列來控制線程集,程序功能是在一個目錄及它的所有子目錄下搜索所有文件,打印出包含指定關鍵字的文件列表,需要的朋友可以參考下
    2015-01-01
  • lombok?子類中如何使用@Builder問題

    lombok?子類中如何使用@Builder問題

    這篇文章主要介紹了lombok?子類中如何使用@Builder問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 淺談JVM 底層解析 i++和 ++i 區(qū)別

    淺談JVM 底層解析 i++和 ++i 區(qū)別

    這篇文章主要介紹了JVM 底層解析 i++和 ++i 區(qū)別,需要的朋友可以參考下面文章的具體內容
    2021-09-09
  • Springboot+Shiro+Jwt實現權限控制的項目實踐

    Springboot+Shiro+Jwt實現權限控制的項目實踐

    如今的互聯(lián)網已經成為前后端分離的時代,所以本文在使用SpringBoot整合Shiro框架的時候會聯(lián)合JWT一起搭配使用,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • 獲取系統(tǒng)參數System.getProperties()與配置文件參數@Value(“${key}“)

    獲取系統(tǒng)參數System.getProperties()與配置文件參數@Value(“${key}“)

    這篇文章主要介紹了獲取系統(tǒng)參數System.getProperties()與配置文件參數@Value("${key}"),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • idea新建mapper.xml文件詳細步驟如:mybatis-config

    idea新建mapper.xml文件詳細步驟如:mybatis-config

    這篇文章主要介紹了idea新建xml模板設置,例如:mybatis-config,本文分步驟通過圖文并茂的形式給大家介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • springboot整合logback打印日志,分文件

    springboot整合logback打印日志,分文件

    本文主要介紹了springboot整合logback打印日志,分文件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-11-11

最新評論