springboot主类及目录结构介绍

Java技术栈      2022-04-12     382

关键词:

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

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

springboot目录结构说明

一、SpringBoot 推荐目录结构(1)代码层的结构  根目录:com.springboot    1.工程启动类(ApplicationServer.java)置于com.springboot.build包下    2.实体类(domain)置于com.springboot.domain    3.数据访问层(Dao)置于com.springboot.repos... 查看详情

springboot目录结构

参考技术A以Maven工程形式新建一个springboot项目。目录结构如下:重点介绍resources目录:在resources文件夹或与其并列的文件夹下建立public文件夹,在public文件夹下的html文件可以通过浏览器中输入文件+后缀名的方式直接访问的. &... 查看详情

springboot---目录结构,文件上传

【转】springBoot(3)---目录结构,文件上传目录结构,文件上传 一、目录结构1、目录讲解   src/main/java:存放代码   src/main/resources          static:存放静态文件 查看详情

springboot工程的结构

1springboot的工程结构是什么就是我们组织springboot工程时遵循的代码的目录结构。2springinitializr创建的工程的目录结构源码目录:src/main/java资源目录:src/main/resources测试目录:src/test/java输出目录:output3约定启动类放在rootpackage下... 查看详情

1.springboot目录结构

1.环境变量:jdk:maven:2.选择启动器:springMVCmybatisMysql3.SpringBoot目录结构**此时直接启动项目会报错,错误信息:因为没有配置数据库连接信息4.配置数据库连接在/resource/application.properties中配置:spring.datasource.url=mysql://106.53.10.14... 查看详情

springboot根据目录结构生成路由前缀

参考技术A需求:制定一个目录为“根目录”,从这个目录开始以下的子目录都加入到路由中例子:如下目录结构,要访问banner中的list接口,要达到目的/api/v1/open/banner/list实现步骤 查看详情

idea启动springboot项目报找不到主类

今天搭建的一个新springboot项目,运行启动类时控制报找不到主类错误解决方法:在idea控制台输入mvncleaninstall命令  查看详情

SpringBoot:无法与maven创建战争:无法找到主类

】SpringBoot:无法与maven创建战争:无法找到主类【英文标题】:SpringBoot:can\'tcreatewarwithmaven:Unabletofindmainclass【发布时间】:2020-08-2906:06:58【问题描述】:我有一个带有war和ear模块的SpringBoot项目,我使用maven(主要用于Java项目的... 查看详情

springboot依赖环境和项目结构介绍

1、环境介绍使用 Spring Boot 开发项目需要有两个基础环境和一个开发工具,这两个环境是指 Java 编译环境和构建工具环境,一个开发工具是指 IDE 开发工具。Spring Boot 2.0 要求 Java 8 ... 查看详情

用springboot实现简单的接口

参考技术A上篇文章已经介绍了SpringBoot的基本使用过程,本文主要介绍用那篇文章中配置好的SpringBoot工程实现简单的接口。最终工程目录是下面这样:这是个简陋的目录结构,仅供我们参考,其中主要分为四类:最后还有一个..A... 查看详情

springboot启动报错:找不到或无法加载主类

解决的办法:https://blog.csdn.net/weixin_44537580/article/details/97375677 查看详情

spring读源码系列01---spring核心类及关联性介绍(代码片段)

Spring读源码系列01---Spring核心类及关联性介绍Spring核心类引子DefaultListableBeanFactoryDefaultListableBeanFactory的继承体系XmlBeanDefinitionReader容器的基础XmlBeanFactory配置文件--->Resource进入源码追踪XmlBeanFactory的构造函数loadBeanDefinit 查看详情

idea创建包和类及常用快捷键

java项目结构IDEA的项目目录我们创建的项目.idea目录和demo.iml和我们开发无关,是IDEA工具自己使用的out目录是存储编译后的.class文件src目录是存储我们编写的.java源文件 创建包和类1.展开创建的工程,在源代码目录src上,鼠标... 查看详情

vue—项目的目录结构介绍

【Vue】—项目的目录结构介绍 查看详情

javaweb应用部署结构浅析

...。所有类文件(普通bean、servlet、监听器、过滤器、辅助类及标志处理器等)的包结构都必须直接放在class目录下,里面存放编译后的.class文件。  3)lib目录:必须直接 查看详情

springboot目录文件结构总结(代码片段)

1、目录  src/main/java:存放java代码  src/main/resources    static:存放静态文件,比如css、js、image(访问方式http://localhost:8080/js/main.js)    templates:存放静态页面jsp,html,tpl    config:存放配置文件application.prope... 查看详情

springboot在命令行指定主类启动程序

参考技术ASpringBoot程序我们一般会设置使用spring-boot-maven-plugin来生成jar包,配置类似于:这样我们可以通过-jar的方式直接启动并执行指定的start-class类的main函数:但当我们需要指定并执行其他类的main函数时,使用-cp参数却行不... 查看详情

springboot:无法与maven创建战争。无法找到主类

我有一个带有war和ear模块的SpringBoot项目,我使用maven(一个主要用于Java项目的自动化工具)和IntelliJIDEAThis是我的war项目的pom.xml。<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http 查看详情