美文网首页Java程序员之言Java 杂谈
Spring Boot 主类及目录结构介绍

Spring Boot 主类及目录结构介绍

作者: java面试笔试 | 来源:发表于2018-09-14 10:46 被阅读2次

    来源:Java技术栈

    链接:https://www.jianshu.com/p/b42bdca2b215

    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 的各项能力,如自动配置、组件扫描等。

    packagecn.javastack.MyApplication;

    importorg.springframework.boot.SpringApplication;

    importorg.springframework.boot.autoconfigure.SpringBootApplication;

    @SpringBootApplication

    publicclassMyApplication{

    publicstaticvoidmain(String[] args){

    SpringApplication.run(MyApplication.class, args);

    }

    }

    如果你不想这么做,你也可以充分利用@EnableAutoConfiguration和@ComponentScan注解自定义你的行为,不过这不是推荐的做法。

    公众号:javafirst

    相关文章

      网友评论

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

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