本篇文章给大家带来的内容是关于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 注解自定义你的行为,不过这不是推荐的做法。
以上是Spring Boot主类和目录结构的简单介绍(附示例)的详细内容。更多信息请关注PHP中文网其他相关文章!