本篇文章给大家带来的内容是关于spring boot主类和目录结构的简单介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
spring boot 与传统项目最大的区别是,传统项目都是打成 war 包部署到服务器上面,需要额外的 servlet 容器, 而 spring boot 则可以直接打成 jar 包,并内置集成了 servlet 容器,通过命令 java -jar xx.jar 则可以直接运行,不需要独立的 servlet 容器。
打成可执行 jar 包后,我们来看下其中的 meta-inf/manifest.mf 文件。
manifest-version: 1.0archiver-version: plexus archiverbuilt-by: adminstart-class: cn.javastack.myapplicationspring-boot-classes: boot-inf/classes/spring-boot-lib: boot-inf/lib/spring-boot-version: 2.0.4.releasecreated-by: apache maven 3.5.0build-jdk: 1.8.0_151main-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;@springbootapplicationpublic class myapplication { public static void main(string[] args) { springapplication.run(myapplication.class, args); }}
如果你不想这么做,你也可以充分利用 @enableautoconfiguration 和 @componentscan 注解自定义你的行为,不过这不是推荐的做法。
以上就是spring boot主类和目录结构的简单介绍(附示例)的详细内容。