当前位置: 首页 > news >正文

第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);}}
http://www.jsqmd.com/news/258701/

相关文章:

  • 2026全屋净水厂家权威推荐榜单:中央净水/管道净水/中央净水机/大流量净水器/除氯净水器/源头厂家精选。 - 品牌推荐官
  • UDP高并发优化:监控RcvbufErrors
  • 强烈安利!专科生必用TOP8 AI论文网站测评
  • 河南与江苏仅“咫尺之隔”,却因安徽没接壤
  • 学习日记day58
  • 古代地名如此动听,却为何几乎都被改掉了?
  • linux 如何查看udp协议缓冲区的默认大小
  • 从混沌到秩序:Lisp家族的演化与ANSI标准化的必然
  • 【AI大模型开发】-基于FAISS的语义搜索系统(实战)
  • 2024年12月GESP真题及题解(C++八级): 排队
  • 2024年12月GESP真题及题解(C++八级): 树上移动
  • 基于STM32单片机智能环境监控温湿度CO2光照PM2.5无线设计26-029
  • 基于STM32单片机智能炉温温度PID控制系统设计DIY21-615
  • 深度测评MBA必备AI论文网站TOP10:开题报告与文献综述全解析
  • 基于STM32单片机共享无线充电锂电池充电宝系统设计DIY21-640
  • LangGraph 科技详解:基于图结构的 AI 工作流与多智能体编排框架
  • 2026-2040 年度贾子智慧 AI 战略落地任务分解表
  • Agent设计模式学习(基于langchain4j实现)(4) - 并行工作流
  • 达梦数据库部署安装故障一
  • 大庆市萨尔图龙凤让胡路红岗大同英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜 - 苏木2025
  • 大庆市林甸肇源肇州杜尔伯特英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜 - 苏木2025
  • 讲讲浩明饮品是否可靠,排名情况深度剖析 - 工业品牌热点
  • 深度测评8个AI论文软件,专科生轻松搞定毕业论文!
  • 2026 出国英语雅思培训一对一辅导机构哪家好?权威口碑排名 + 提分效果深度解析 - 老周说教育
  • 【JVM 终极通关指南】万字长文从底层到实战全维度深度拆解 Java 虚拟机
  • 2026 全国英语雅思培训辅导机构排行榜:权威深度测评,靠谱机构高性价比推荐​ - 老周说教育
  • 2026年薄膜开关厂家实力推荐榜:PET/亚克力/轻触/PC/PVC薄膜开关面板及按键开关全系供应 - 品牌推荐官
  • 英语广州英语雅思培训教育机构哪里最好?2026 高分考生首选榜单,个性化方案推荐 - 老周说教育
  • 2026 年膨胀仪厂家推荐榜:湘潭市仪器仪表有限公司 ,高温卧式/低温/立式/线性/热/推杆式膨胀仪全系供应 - 品牌推荐官
  • 苏州市姑苏虎丘吴中相城吴江区英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜推荐 - 老周说教育