springboot目錄結構、重要配置文件、重要註解的詳解

  • 2021 年 12 月 26 日
  • 筆記

前面2篇部落格已經帶著大家搭建了springboot項目,並編寫了持久化介面部署到tomcat下訪問。這裡我們一起補充下springboot的基本資訊

一.springboot簡單介紹

springboot是目前流行的微服務框架,倡導「約定優於配置」,簡化spring項目搭建及開發過程。springboot提供了很多核心的功能,比如自動化配置、starter簡化maven配置、內嵌servlet容器、應用監控等功能。穩定的版本後綴帶RELEASE。

二.工程目錄介紹

       

 

1./src/main/java:目錄下放置所有的java文件(源程式碼)

2./src/main/resource:存放資源文件、如靜態資源文件、配置文件、頁面文件等

3./src/main/resource/static:存放靜態資源

4./src/mian/resource/application.properties:配置文件,springboot支援.properties和.yml文件

5./src/main/resources/templates:存放模板文件如thymeleaf模板文件

6./src/test/java:單元測試類java文件

7./target:放置編譯後的.class文件、配置文件等

注意:.properties的文件優先順序高於.yml文件。

三.入口類

入口類的名稱是根據項目的名稱生成的,項目名稱+application

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);//應用程式開始運行的地方
    }

}

@springbootapplication:是個組合註解,包含@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan,簡化項目啟動。

四.pom.xml文件

springboot項目下的pom.xml主要是存放依賴資訊

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="//maven.apache.org/POM/4.0.0" xmlns:xsi="//www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="//maven.apache.org/POM/4.0.0 //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.1.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.louis.springboot</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <!-- web -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- swagger -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
        <!-- jdbc -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!-- mysql -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.21</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-core</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.10</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
        <!-- 打包時拷貝MyBatis的映射文件 -->
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/sqlmap/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.*</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

</project>

1.spring-boot-starter-parent是個特殊的starter,用來提供相關的maven默認依賴,使用它之後,常用的包依賴可以省去version標籤。

2.spring-boot-starter-web:得到常用的web依賴包,比如spring-web、spring-webmvc等

3.spring-boot-starter-test:自動引入與測試相關的包

4.spring-boot-maven-plugin:這是個maven插件,能夠以maven的方式為應用提供springboot的支援,即為springboot應用提供了執行maven操作的可能。能夠將springboot應用打包為可執行的jar或者war文件