Spring Boot 主類及目錄結構介紹


Spring Boot 與傳統項目最大的區別是,傳統項目都是打成 WAR 包部署到服務器上面,需要額外的 Servlet 容器, 而 Spring Boot 則可以直接打成 jar 包,並內置集成了 Servlet 容器,通過命令 java -jar xx.jar 則可以直接運行,不需要獨立的 Servlet 容器。

打成可執行 jar 包后,我們來看下其中的 META-INF/MANIFEST.MF 文件。

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: admin
Start-Class: cn.javastack.MyApplication
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Spring-Boot-Version: 2.0.4.RELEASE
Created-By: Apache Maven 3.5.0
Build-Jdk: 1.8.0_151
Main-Class: org.springframework.boot.loader.JarLauncher

其中有一個 Start-Class 便是這個 jar 包的入口類,這個入口類推薦是放在一個項目的頂層包中,其他所有的類都放在其子包下面,目錄結構如以下所示。

cn
 +- javastack
     +- MyApplication.java
     |
     +- customer
     |   +- Customer.java
     |   +- CustomerController.java
     |   +- CustomerService.java
     |   +- CustomerRepository.java
     |
     +- order
         +- Order.java
         +- OrderController.java
         +- OrderService.java
         +- OrderRepository.java

這個目錄結構是主流及推薦的做法,而在主入口類上加上 @SpringBootApplication 注解來開啟 Spring Boot 的各項能力,如自動配置、組件掃描等。

package cn.javastack.MyApplication;

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

@SpringBootApplication
public class MyApplication {

	public static void main(String[] args) {
		SpringApplication.run(MyApplication.class, args);
	}

}

如果你不想這么做,你也可以充分利用 @EnableAutoConfiguration@ComponentScan 注解自定義你的行為,不過這不是推薦的做法。

更多干貨推薦

1.史上最強 Java 中高級面試題整理

2.史上最強 Spring Boot & Cloud 教程整理

3.史上最強架構設計分布式技術干貨整理

更多請掃描下方的二維碼關注我們的微信公眾號,干貨每日推送!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM