news 2026/5/3 19:54:19

第2章:SpringBoot开发规范

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第2章:SpringBoot开发规范

文章目录

  • 第2章:SpringBoot开发规范
    • 静态资源访问
    • 启动类位置常见形式
    • 启动方式讲解和部署

第2章:SpringBoot开发规范

静态资源访问

默认静态资源位置

  • SpringBoot 会自动扫描以下目录中的静态资源,可直接通过 URL 访问:
    • classpath:/META-INF/resources/(一般用于存放第三方组件的静态资源)
    • classpath:/resources/(自定义资源目录)
    • classpath:/static/(推荐,默认主要静态资源目录)
    • classpath:/public/(公共资源目录)
  • 说明:classpath:对应src/main/resources/目录。

静态资源访问路径规则

  • 基础路径:

    • 默认无前缀,直接通过资源文件名 / 子路径访问。
  • static目录为例:

    资源位置访问路径示例
    resources/static/css//css/http://localhost:8080/css/style.css
    resources/static/js//js/http://localhost:8080/js/app.js
    resources/static/images//images/http://localhost:8080/images/logo.png

自定义静态资源路径

spring:web:resources:static-locations:-classpath:/static/-classpath:/web/

启动类位置常见形式

启动类定义

  • SpringBoot 启动类(标注@SpringBootApplication的类)是项目的入口,
  • 其位置直接影响 Spring 的组件扫描范围(默认扫描启动类所在包及其子包)。
  • 合理的启动类位置能避免组件无法被扫描、依赖注入失败等问题。

常见的启动类位置形式及适用场景:

  • 标准形式:启动类位于`

    • 核心特点:

      • 启动类放在项目最顶层的 “根包” 下(如com.example.demo

      • 所有业务包(controller/service/mapper等)均为根包的子包

      • src/main/java/ └── com/ └── example/ └── demo/ # 根包 ├── DemoApplication.java # 启动类(根包下) ├── controller/ # 子包:控制器 ├── service/ # 子包:服务 ├── mapper/ # 子包:数据访问 └── entity/ # 子包:实体类
    • 适用场景:

      • 绝大多数单体项目或小型微服务项目。
      • 优势:符合 “约定优于配置” 原则,无需手动指定扫描范围,减少配置成本。

自定义形式:启动类位于子包下(需手动扩展扫描范围)

  • 核心特点:

    • 启动类不放在根包下,而是放在自定义子包(如com.example.demo.config

    • 此时默认扫描范围无法覆盖其他业务包,需通过注解手动指定扫描路径。

    • src/main/java/ └── com/ └── example/ └── demo/ # 根包 ├── config/ # 子包:配置 │ └── DemoApplication.java # 启动类(在 config 子包下) ├── controller/ # 其他业务子包(与 config 平级) └── service/
    • 项目有严格的包分层规范(如将启动类归类到config包)。

    • 注意:

      • 必须通过scanBasePackages@ComponentScan手动指定根包,
      • 否则controller/service等组件无法被扫描(会导致接口 404、依赖注入失败)

启动方式讲解和部署

标准启动方式

packagecom.guslegend;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublicclassDemoApplication{publicstaticvoidmain(String[]args){SpringApplication.run(DemoApplication.class,args);}}

自定义启动方式

packagecom.guslegend;importorg.springframework.boot.Banner;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublicclassDemoApplication{publicstaticvoidmain(String[]args){SpringApplicationapp=newSpringApplication(DemoApplication.class);// 自定义启动配置app.setBannerMode(Banner.Mode.CONSOLE);// 控制台显示bannerapp.setLogStartupInfo(true);// 显示启动信息app.run(args);}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 7:03:10

QUdpSocket的readyRead信号触发时机解析

1.QUdpSocket的readyRead信号发送的时机 QUdpSocket 的 readyRead() 信号是在 有新的 UDP 数据报到达套接字的接收缓冲区,并且应用程序 尚未读取这些数据 时发出的。 具体来说,其触发时机如下: ✅ 触发条件 UDP 数据报已到达本地主机 并被…

作者头像 李华
网站建设 2026/5/3 3:27:57

基于STM32单片机智能环境监控温湿度CO2光照PM2.5无线设计26-029

26-029、STM32智能环境监控系统设计-TFT1.44-PM2.5-CO2-BH1750-DHT11-WIFI-风扇本设计由STM32F103C8T6单片机核心板电路TFT1.44寸液晶电路PM2.5传感器电路CO2传感器电路BH1750光照检测电路DHT11温湿度传感器电路2路风扇电路WiFi-ESP8266模块电路电源电路组成。1、TFT1.44寸液晶…

作者头像 李华
网站建设 2026/4/17 18:39:28

达梦数据库部署安装故障一

你执行 disql 登录达梦数据库时出现 [-70028]:创建SOCKET连接失败 报错,核心原因是 达梦数据库实例(dmserver)尚未启动,或实例未正常监听 5236 端口,导致 disql 无法建立 Socket 连接,具体分析和解决方案如…

作者头像 李华
网站建设 2026/4/28 22:23:12

智能蛋糕店管理系统的设计与实现

一、选题背景及意义. 1.选题背景 随着现代社会经济的快速发展和人们生活水平的不断提高,烘焙食品特别是蛋糕产品已经从过去的奢侈品转变为日常消费品,蛋糕店作为重要的零售业态在城市商业中占据着越来越重要的地位。然而,传统蛋糕店在经营管理过程中普遍面临着诸多挑战,包括订单…

作者头像 李华
网站建设 2026/5/3 14:23:54

新手站长别哭!三个月把网站流量干翻倍的老炮儿碎碎念

新手站长别哭!三个月把网站流量干翻倍的老炮儿碎碎念 新手站长别哭!三个月把网站流量干翻倍的老炮儿碎碎念咱先把丑话说前头:SEO 真不是玄学,但比玄学还磨人关键词:别一上来就“口红口红口红”,先学会“装无…

作者头像 李华