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.史上最强架构设计分布式技术干货整理

更多请扫描下方的二维码关注我们的微信公众号,干货每日推送!

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/16246.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论