资讯专栏INFORMATION COLUMN

Spring Boot 主类及目录结构介绍

suemi / 1707人阅读

摘要:其中有一个便是这个包的入口类,这个入口类推荐是放在一个项目的顶层包中,其他所有的类都放在其子包下面,目录结构如以下所示。这个目录结构是主流及推荐的做法,而在主入口类上加上注解来开启的各项能力,如自动配置组件扫描等。

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

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/77299.html

相关文章

  • 吐血整理 20 道 Spring Boot 面试题,我经常拿来面试别人!

    摘要:你如何理解中的可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成及其他技术,而不需要到处找示例代码和依赖包。如你想使用访问数据库,只要加入启动器依赖就能使用了。 面试了一些人,简历上都说自己熟悉 Spring Boot, 或者说正在学习 Spring Boot,一问他们时,都只停留在简单的使用阶段,很多东西都不清楚,也让我对面试者大失所望。 下面,我给大家总结...

    haoguo 评论0 收藏0
  • Spring-Boot启动之前做了哪些事?

    摘要:也就是说,可以执行成功,是因为知道了的路径,说明在启动调用之前,指定了的位置。判断当前的介质,是启动,还是启动。 Spring-Boot启动之前做了哪些事? Spring Boot Jar文件探究 初始化一个Spring 应用,添加如下依赖 4.0.0 org.springframework.boot spring-boot-sta...

    susheng 评论0 收藏0
  • Spring Boot 2.x基础教程:工程结构推荐

    摘要:典型示例以下结构是比较推荐的组织方式,所有的类和其他都在之下。应用主类,该类直接位于下。默认情况下,的应用主类会自动扫描以及所有子包下的所有类来进行初始化。 Spring Boot框架本身并没有对工程结构有特别的要求,但是按照最佳实践的工程结构可以帮助我们减少可能会遇见的坑,尤其是Spring包扫描机制的存在,如果您使用最佳实践的工程结构,可以免去不少特殊的配置工作。 典型示例 以下结...

    CollinPeng 评论0 收藏0
  • Spring Cloud Zuul中使用Swagger汇总API接口文档

    摘要:代码示例本文示例读者可以通过查看下面仓库的中的三个项目如果您对这些感兴趣,欢迎收藏转发给予支持以下专题教程也许您会有兴趣基础教程基础教程 有很多读者问过这样的一个问题:虽然使用Swagger可以为Spring MVC编写的接口生成了API文档,但是在微服务化之后,这些API文档都离散在各个微服务中,是否有办法将这些接口都整合到一个文档中?之前给大家的回复都只是简单的说了个思路,昨天正好...

    Salamander 评论0 收藏0
  • 后端文章 - 收藏集 - 掘金

    摘要:为什么我会说它们是一样的简单思考一下我的后端书架后端掘金我的后端书架月前本书架主要针对后端开发与架构。一方案调研版本选择当前主流版本是和应用的后台运行配置后端掘金酱油一篇,整理一下关于后台运行的一些配置方式。 分享 50 个完整的 React Native 项目 - 掘金本文为 Marno 原创,转载必须保留出处! 公众号 aMarno,关注后回复 RN 加入交流群 简书专题《 Rea...

    CntChen 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<