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

詳解SpringBoot目錄結(jié)構(gòu)劃分

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

前言

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

先看第一層目錄

/.mvn    (這是 Maven Wrapper 的存放位置。Maven Wrapper 是一個(gè)包裝器工具,用于在沒(méi)有預(yù)先安裝 Maven 的系統(tǒng)上運(yùn)行 Maven 項(xiàng)目。它包含一個(gè)用于下載和安裝特定 Maven 版本的腳本。如果刪除這個(gè)文件夾會(huì)導(dǎo)致無(wú)法使用 Maven Wrapper 來(lái)自動(dòng)下載和管理特定版本的 Maven。開(kāi)發(fā)人員必須手動(dòng)安裝并配置全局的 Maven,或者使用其他構(gòu)建工具來(lái)代替 Maven。)

/src    (項(xiàng)目的源碼層,日常開(kāi)發(fā)都在此目錄下的進(jìn)行)

/target     (放置編譯后的.class文件、配置文件等、 target文件夾是用來(lái)存放項(xiàng)目構(gòu)建后的文件和目錄、jar包、war包、編譯的class文件,都是maven構(gòu)建時(shí)生成的。)

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

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

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

    為了簡(jiǎn)化項(xiàng)目的構(gòu)建和管理過(guò)程,并確保項(xiàng)目在不同環(huán)境中的一致性,Spring Boot 引入了 Maven Wrapper。Maven Wrapper 是一個(gè)用于包裝 Maven 的腳本和庫(kù)文件的工具,可以將 Maven 包裝在項(xiàng)目?jī)?nèi)部,不依賴于本地環(huán)境中是否已安裝 Maven。

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

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

這是 Maven Wrapper 的可執(zhí)行腳本(Unix/Linux 系統(tǒng))。它允許在沒(méi)有全局 Maven 安裝的情況下運(yùn)行 Maven 項(xiàng)目。運(yùn)行 mvnw 腳本會(huì)自動(dòng)下載并使用指定版本的 Maven 來(lái)執(zhí)行項(xiàng)目構(gòu)建、測(cè)試等操作。

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

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

<?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>

重點(diǎn)是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è)務(wù)代碼層

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

|---|---|---/src/main/java/com/example/demo/vo :通常用于與前端交互,封裝前端調(diào)用某個(gè)接口之后所需的所有數(shù)據(jù)。在前后端分離的時(shí)代,VO主要應(yīng)用于表示視圖層的類。

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

|---|---|---/src/main/java/com/example/demo/entity:存放實(shí)體類,與數(shù)據(jù)庫(kù)表名和字段名對(duì)應(yīng)

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

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

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

|---|---|---/src/main/resource/mapper:存放MyBatis操作數(shù)據(jù)庫(kù)的xml文件

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

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

|---|---|---/src/mian/resource/application.properties:: SpringBoot項(xiàng)目的配置文件,SpringBoot支持.properties和.yml文件

application.properties文件內(nèi)容

#端口號(hào)配置
server.port=9099

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

#mybatis映射對(duì)應(yīng)的實(shí)體類位置
mybatis.type-aliases-package=com.example.demo.entity

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

#開(kāi)啟數(shù)據(jù)庫(kù)下劃線映射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

# 配置上傳文件大小限制
# 單個(gè)文件大小配置
spring.servlet.multipart.maxFileSize=30MB
# 請(qǐng)求總大小配置
spring.http.multipart.maxRequestSize = 30MB

|---/src/test  單元測(cè)試類java文件

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

相關(guān)文章

  • Java中比較抽象類與接口的異同

    Java中比較抽象類與接口的異同

    大家好,本篇文章主要講的是Java中比較抽象類與接口的異同,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Springmvc ajax跨域請(qǐng)求處理方法實(shí)例詳解

    Springmvc ajax跨域請(qǐng)求處理方法實(shí)例詳解

    這篇文章主要介紹了Springmvc ajax跨域請(qǐng)求處理方法實(shí)例詳解,需要的朋友可以參考下
    2017-10-10
  • 使用SpringDataJpa創(chuàng)建中間表

    使用SpringDataJpa創(chuàng)建中間表

    這篇文章主要介紹了使用SpringDataJpa創(chuàng)建中間表,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Java實(shí)現(xiàn)在Word指定位置插入分頁(yè)符

    Java實(shí)現(xiàn)在Word指定位置插入分頁(yè)符

    在Word插入分頁(yè)符可以在指定段落后插入,也可以在特定文本位置處插入。本文將以Java代碼來(lái)操作以上兩種文檔分頁(yè)需求,需要的可以參考一下
    2022-04-04
  • SpringBoot 集成 Druid過(guò)程解析

    SpringBoot 集成 Druid過(guò)程解析

    這篇文章主要介紹了SpringBoot 集成 Druid過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • jstack和線程dump實(shí)例解析

    jstack和線程dump實(shí)例解析

    這篇文章主要介紹了jstack和線程dump實(shí)例解析,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • java虛擬機(jī)原理:Class字節(jié)碼二進(jìn)制文件分析

    java虛擬機(jī)原理:Class字節(jié)碼二進(jìn)制文件分析

    class文件全名稱為Java class文件,主要在平臺(tái)無(wú)關(guān)性和網(wǎng)絡(luò)移動(dòng)性方面使Java更適合網(wǎng)絡(luò)。它在平臺(tái)無(wú)關(guān)性方面的任務(wù)是:為Java程序提供獨(dú)立于底層主機(jī)平臺(tái)的二進(jìn)制形式的服務(wù)。下面我們來(lái)詳細(xì)解讀下它吧
    2021-09-09
  • SpringBoot3整合Nacos?V2.3.2的詳細(xì)過(guò)程

    SpringBoot3整合Nacos?V2.3.2的詳細(xì)過(guò)程

    本文介紹了如何在?Spring?Boot?3.2.x?項(xiàng)目中整合?Nacos?2.3.2,包括依賴配置、Nacos?服務(wù)發(fā)現(xiàn)與動(dòng)態(tài)配置的配置方法,通過(guò)整合?Nacos,Spring?Boot?應(yīng)用可以實(shí)現(xiàn)高效的服務(wù)發(fā)現(xiàn)、動(dòng)態(tài)配置管理以及分布式系統(tǒng)中的靈活擴(kuò)展,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • JAVA序列化和反序列化的底層實(shí)現(xiàn)原理解析

    JAVA序列化和反序列化的底層實(shí)現(xiàn)原理解析

    這篇文章主要介紹了JAVA序列化和反序列化的底層實(shí)現(xiàn)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • SpringBoot底層注解詳解

    SpringBoot底層注解詳解

    這篇文章主要介紹了SpringBoot底層注解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-05-05

最新評(píng)論

安乡县| 临高县| 乌鲁木齐县| 青岛市| 句容市| 普宁市| 旺苍县| 泰顺县| 芜湖县| 宜川县| 嘉义县| 永清县| 昭觉县| 红原县| 托里县| 阜阳市| 中江县| 西青区| 北碚区| 名山县| 东丰县| 长治县| 四子王旗| 农安县| 安龙县| 精河县| 余干县| 建德市| 沙坪坝区| 利津县| 武山县| 兴仁县| 闽侯县| 贺兰县| 资阳市| 韶关市| 通榆县| 宿松县| 天气| 平阴县| 揭阳市|