This article brings you a brief introduction to the main class and directory structure of Spring Boot (with examples). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.
The biggest difference between Spring Boot and traditional projects is that traditional projects are packaged into WAR packages and deployed to the server, requiring additional Servlet containers, while Spring Boot can be directly packaged into jar packages and built-in integration The Servlet container can be run directly through the command java -jar xx.jar without the need for an independent Servlet container.
After making it an executable jar package, let’s take a look at the META-INF/MANIFEST.MF file.
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
There is a Start-Class which is the entry class of this jar package. It is recommended that this entry class be placed in the top-level package of a project, and all other classes are placed under its sub-packages. Directory structure As shown below.
cn +- javastack +- MyApplication.java | +- customer | +- Customer.java | +- CustomerController.java | +- CustomerService.java | +- CustomerRepository.java | +- order +- Order.java +- OrderController.java +- OrderService.java +- OrderRepository.java
This directory structure is the mainstream and recommended approach, and the @SpringBootApplication annotation is added to the main entry class to enable various capabilities of Spring Boot, such as automatic configuration, component scanning, etc.
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); } }
If you don’t want to do this, you can also make full use of @EnableAutoConfiguration and @ComponentScan annotations to customize your behavior, but this is not a recommended approach.
The above is the detailed content of A brief introduction to Spring Boot main class and directory structure (with examples). For more information, please follow other related articles on the PHP Chinese website!