項目結構介紹
如上圖所示,Spring Boot 的基礎結構共三個文件,具體如下:
- src/main/java:程序開發以及主程序入口;
- src/main/resources:配置文件;
- src/test/java:測試程序。
另外,Spring Boot 建議的目錄結構如下。
com.example.myproject 目錄下:
myproject +-src +- main +- java +- com.example.myproject +- comm +- model +- repository +- service +- web +- Application.java +- resources +- static +- templates +- application.properties +- test +-pom.xml
com.example.myproject 目錄下:
- Application.java,建議放到根目錄下面,是項目的啟動類,Spring Boot 項目只能有一個 main() 方法;
- comm 目錄建議放置公共的類,如全局的配置文件、工具類等;
- model 目錄主要用於實體(Entity)與數據訪問層(Repository);
- repository 層主要是數據庫訪問層代碼;
- service 層主要是業務類代碼;
- web 層負責頁面訪問控制。
resources 目錄下:
- static 目錄存放 web 訪問的靜態資源,如 js、css、圖片等;
- templates 目錄存放頁面模板;
- application.properties 存放項目的配置信息。
test 目錄存放單元測試的代碼;pom.xml 用於配置項目依賴包,以及其他配置。
采用默認配置可以省去很多設置,也可以根據公司的規范進行修改,至此一個 Java 項目搭建好了!
Pom 包介紹
pom.xml 文件主要描述了項目包的依賴和項目構建時的配置,在默認的 pom.xml 包中分為四大塊。
第一部分為項目的描述信息:
<groupId>com.neo</groupId> <artifactId>hello</artifactId> <version>2.0.5.RELEASE</version> <packaging>jar</packaging> <name>hello</name> <description>Demo project for Spring Boot</description>
- groupId,項目的包路徑;
- artifactId,項目名稱;
- version,項目版本號;
- packaging,一般有兩個值:jar、war,表示使用 Maven 打包時構建成 Jar 包還是 War 包;
- name,項目名稱;
- description,項目描述。
第二部分為項目的依賴配置信息:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.5.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
- parent,標簽內配置 Spring Boot 父級版本 spring-boot-starter-parent,Maven 支持項目的父子結構,引入父級后會默認繼承父級的配置;
- dependencies,標簽內配置項目所需要的依賴包,Spring Boot 體系內的依賴組件不需要填寫具體版本號,spring-boot-starter-parent 維護了體系內所有依賴包的版本信息。
<scope>test</scope>
,表示依賴的組件僅僅參與測試相關的工作,包括測試代碼的編譯和執行,不會被打包包含進去;- spring-boot-starter-test 是 Spring Boot 提供項目測試的工具包,內置了多種測試工具,方便我們在項目中做單元測試、集成測試。
第三部分為構建時需要的公共變量:
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties>
上面配置了項目構建時所使用的編碼,輸出所使用的編碼,最后指定了項目使用的 JDK 版本。
第四部分為構建配置:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
使用 Maven 構建 Spring Boot 項目必須依賴於 spring-boot-maven-plugin 組件,spring-boot-maven-plugin 能夠以 Maven 的方式為應用提供 Spring Boot 的支持,即為 Spring Boot 應用提供了執行 Maven 操作的可能。spring-boot-maven-plugin 能夠將 Spring Boot 應用打包為可執行的 jar 或 war 文件,然后以簡單的方式運行 Spring Boot 應用。
以上即為 pom.xml 文件基礎內容,幾乎所有的 Spring Boot 項目都會用到以上配置信息。