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 注解自定义你的行为,不过这不是推荐的做法。

更多干货推荐

1.史上最强 Java 中高级面试题整理

2.史上最强 Spring Boot & Cloud 教程整理

3.史上最强架构设计分布式技术干货整理

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

原文地址:https://www.cnblogs.com/javastack/p/9625548.html

时间: 2024-10-29 12:58:59

Spring Boot 主类及目录结构介绍的相关文章

spring boot 依赖环境和项目结构介绍

1.环境介绍 使用 Spring Boot 开发项目需要有两个基础环境和一个开发工具,这两个环境是指 Java 编译环境和构建工具环境,一个开发工具是指 IDE 开发工具. Spring Boot 2.0 要求 Java 8 作为最低版本,需要在本机安装 JDK 1.8 并进行环境变量配置,同时需要安装构建工具编译 Spring Boot 项目,最后准备个顺手的 IDE 开发工具即可. 1.1.构建工具 构建工具是一个把源代码生成可执行应用程序的自动化工具,Java 领域中主要有三大构建工具:A

Magento学习第一课——目录结构介绍

Magento学习第一课--目录结构介绍 一.Magento为何强大 Magento是在Zend框架基础上建立起来的,这点保证了代码的安全性及稳定性.选择Zend的原因有很多,但是最基本的是因为zend框架提供了面向对象的代码库并且有很好的团队支持.通过这个框架,Magento主要围绕三个基本点建立: 1. 灵活性:我们相信每一个解决方案都像它的商务支持一样是独一无二的.Magento的代码可以无缝定制的. 2. 可升级性:Magento可方便的实行定制且不丧失升级的能力,因为从社区中获得核心代

微擎目录结构介绍

pro ├─ addons ---------------- [模块安装目录] (意为附加组件) │ ├─ business -------------- 模块的名称 (示例) │ │ ├─ images 建议 css 文件也放此目录. │ │ ├─ template 模板目录 │ │ │ ├─ mobile APP 端模板目录 │ │ │ │ └─ ... *.html APP 端模板文件 │ │ │ └─ ... *.html Web 端模板文件 │ │ ├─ inc 引用的 php 文件目

vue学习笔记——目录结构介绍(二)

1.初始目录结构如下: 2.目录结构介绍 目录/文件 说明 build 最终发布的代码存放位置. config 配置目录,包括端口号等.我们初学可以使用默认的. node_modules npm 加载的项目依赖模块 src 这里是我们要开发的目录,基本上要做的事情都在这个目录里.里面包含了几个目录及文件: assets: 放置一些图片,如logo等. commponents: 目录里面放了一个组件文件,可以不用. App.vue: 项目入口文件,我们也可以直接将组建写这里,而不使用 commpo

Linux源代码目录结构介绍

1.arch目录:存放不同平台的相关代码,每种平台用不同的目录来区分. ******Alpha平台 ******Arm平台 ******Arv32平台 ******X86平台 2.drivers目录:存放驱动程序的目录,不同的驱动用不同的目录来加以区分. ******ftape:磁带驱动 ******hfmodem:无线电设备驱动 ******joystick:游戏杆驱动 ******paride:从并口访问IDE设备的支持 ******cdrom:光驱驱动 ******char:字符设备驱动

create-react-app脚手架的安装和目录结构介绍

1.对脚手架的初步了解 编程领域中的"脚手架"指的是能够快速搭建项目"骨架"的一类工具,例如大多数的React项目都有src,public,webpack配置文件等等,而src目录中又包含components目录等等.每次在新建项目时,手动创建这些固定的文件目录.脚手架的作用就是帮助你完成这些重复性的工作,包括一键生成主要的目录结构.安装依赖等等. 2.脚手架的安装 ①两步操作即可完成 npm  install -g create-react-app yarn  (

一起学JAVA之《spring boot》03 - 开始spring boot基本配置及项目结构(转)

<div class="markdown_views"> <h3 id="一导航"><a name="t0"></a>一.导航</h3> 本节内容简介: 1. spring boot 配置文件,使用@SpringBootApplication注解 2. spring boot 修改Java版本 和项目编码 3. 一个标准的spring boot 代码结构 4. 查看当前项目自动配置了那些

Linux目录结构介绍

目录结构 重点: linux下一切从根"/"开始 Linux下磁盘不挂载不能使用,必须挂载. 一.Linux系统目录结构的基本特点介绍 (1)Linux目录一切从"根"开始,"/"是所有目录的起点(顶点):相对路径(目录)和绝对路径(目录). (2)Linux根下面的目录是一个有层次的树状结构 (3)倒挂的一棵树 (4)Linux每个目录可以挂载在不同的设备(磁盘)上,windows不容易做到. 在逻辑上所有的目录(包括目录下的子目录)都在最高级

Linux的目录结构介绍

简单篇~~~各位大神看到有不正确的地方及时纠正小弟~~~小弟在此抱拳谢过! 此次介绍的目录结构是基于CentOS 6.8系统~ 根目录:/ bin目录:存放普通用户可以使用的命令 boot:存放系统的启动文件 dev:存放系统的硬件设备信息 etc:存放系统的配置信息:属于重要目录,不要随意修改里面的内容 home:普通用户的主目录:每个普通用户都会默认在home目录下有一个跟其名字相同的目录 lib:library,库:公共的,可被调用的方法包 lost+found:系统非正常关闭后,未正常保