美文网首页后端技术SpringBoot学习
Spring Boot 主类及目录结构介绍

Spring Boot 主类及目录结构介绍

作者: Java技术栈 | 来源:发表于2018-09-11 09:08 被阅读43次

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

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

    Java技术栈

    相关文章

      网友评论

        本文标题:Spring Boot 主类及目录结构介绍

        本文链接:https://www.haomeiwen.com/subject/vleygftx.html