Spring Boot目录变文件夹?3步解决!

在 Spring Boot 项目中,当你在 src/main/java 下看到目录结构而不是包结构时,这通常是 IDE(如 IntelliJ IDEA)的显示问题或项目配置问题。以下是原因和解决方案:


问题原因

  1. IDE 未正确识别 Java 源代码根目录

    • src/main/java 没有被标记为 Sources Root(源代码根目录)
    • 导致 IDE 将其视为普通文件夹而非 Java 包结构
  2. 包名不符合 Java 规范

    • Java 包名要求全小写字母(如 com.example
    • 如果目录名包含大写字母非法字符(如 SpringbootMybatisDay10A),IDE 可能不会识别为包
  3. 项目构建工具配置问题

    • Maven/Gradle 配置错误,未正确指定源代码路径

解决方案

方法 1:在 IDE 中标记源代码根目录(推荐)

以 IntelliJ IDEA 为例:

  1. 右键点击 src/main/java 目录
  2. 选择 Mark Directory as → Sources Root
    Project
    └── src└── main├── java       [Mark as Sources Root]  ✅└── resources
    
  3. 刷新项目:IDE 会自动将目录转换为包结构
方法 2:修正包名(全小写)
  1. 将包名改为全小写(Java 规范要求):
    - com.shmily.springbootmybatisday10.mapper.SpringbootMybatisDay10A
    + com.shmily.springbootmybatisday10.mapper.springbootmybatisday10a
    
  2. 在 IDE 中重命名目录:
    • 右键目录 → Refactor → Rename
    • 使用全小写格式(如 springbootmybatisday10a
方法 3:检查 Maven 配置

确保 pom.xml 正确指定了源代码目录:

<build><sourceDirectory>src/main/java</sourceDirectory>
</build>
方法 4:重建项目结构

如果以上无效,手动创建包:

  1. src/main/java 下右键 → New → Package
  2. 按层级输入包名(用 . 分隔):
    com.shmily.springbootmybatisday10.mapper
    
  3. IDE 会自动生成嵌套的包结构:
    src/main/java
    └── com└── shmily└── springbootmybatisday10└── mapper  [Package图标]
    

预期效果 vs 错误效果

正确状态(包)错误状态(目录)
显示为 黄色圆点图标 🟡显示为 普通文件夹图标 📁
可创建 Java 类文件无法直接创建 Java 类
包名用 . 分隔层级目录名显示完整路径

预防措施

  1. 创建项目时使用正确命名
    • 在 Spring Initializr 中,使用全小写的 Group 和 Artifact:
      Group: com.shmily
      Artifact: springbootmybatisday10
      
  2. 避免手动创建目录
    • 始终通过 IDE 的 New → Package 创建包
  3. 检查项目配置
    • 确保 src/main/java 是 Sources Root
    • 确保 src/test/java 是 Test Sources Root

💡 在 IntelliJ IDEA 中,黄色图标表示 Java 包,蓝色图标表示普通目录。通过正确标记 Sources Root,你的目录结构会自动转换为包结构。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/88998.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/88998.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Appium源码深度解析:从驱动到架构

Appium源码深度解析:从驱动到架构 Appium 源码概览 Appium 是一个开源的移动自动化测试框架,支持跨平台(iOS、Android)和多种编程语言(Java、Python 等)。其源码托管在 GitHub 上,主要由 JavaScript 和 Node.js 实现,核心逻辑围绕客户端-服务器架构设计。 GitHub 仓库…

给 Excel 整列空格文字内容加上前缀:像给文字穿衣服一样简单!

目录 步骤一&#xff1a;选中目标列 打开Excel表格并定位列点击列标题选中整列 步骤二&#xff1a;输入公式&#xff0c;变身“魔法” 在公式编辑栏输入公式按下回车键查看效果 步骤三&#xff1a;向下填充&#xff0c;批量处理 鼠标定位到单元格右下角按住鼠标左键向下拖动填充…

Spring Boot 启动原理揭秘:从 main 方法到自动装配

Spring Boot 启动原理揭秘&#xff1a;从 main 方法到自动装配 引言 Spring Boot 作为 Java 领域最流行的开发框架之一&#xff0c;凭借其“开箱即用”的特性极大地简化了 Spring 应用的搭建和部署。然而&#xff0c;尽管开发者在日常工作中频繁使用 Spring Boot 的启动类&…

OpenCV 与深度学习:从图像分类到目标检测技术

一、深度学习&#xff1a;从 “人工设计” 到 “自动学习”1.1 深度学习的定位&#xff1a;AI、机器学习与深度学习的关系人工智能&#xff08;AI&#xff09;&#xff1a;是一个宽泛的领域&#xff0c;目标是构建能模拟人类智能的系统&#xff0c;涵盖推理、感知、决策等能力。…

Docker 镜像推送至 Coding 制品仓库超时问题排查与解决

Docker 镜像推送至 Coding 制品仓库超时问题排查与解决 在将 Docker 镜像推送至 Coding 的制品仓库时&#xff0c;可能会遇到 docker push 命令超时失败的问题。但使用 curl -i http://xxx.coding.xxxx.xx 测试时&#xff0c;连接却能成功建立。以下是排查过程及解决方案。 问题…

https交互原理

Https 交互时序图&#xff1a;HTTPS 通信中结合 RSA 和 AES 加密的流程&#xff0c;本质是利用 RSA 的安全特性交换 AES 密钥&#xff0c;再用高效的 AES 加密实际数据传输。HTTPS 交互核心流程&#xff08;TLS/SSL 握手&#xff09; 1. 建立 TCP 连接 客户端通过 TCP 三次握手…

LSTM入门案例(时间序列预测)| pytorch实现

需求 假如我有一个时间序列&#xff0c;例如是前113天的价格数据&#xff08;训练集&#xff09;&#xff0c;然后我希望借此预测后30天的数据&#xff08;测试集&#xff09;&#xff0c;实际上这143天的价格数据都已经有了。这里为了简单&#xff0c;每一天的数据只有一个价…

WPS、Word加载项开发流程(免费最简版本)

文章目录1 加载项对比2 WPS 加载项2.1 本地开发2.1.1 准备开发环境2.1.2 新建 WPS 加载项项目2.1.3 运行项目2.2 在线部署2.2.1 编译项目2.2.2 部署项目2.2.3 生成分发文件2.2.4 部署分发文件2.3 安装加载项2.4 取消发布3 Word 加载项3.1 本地开发3.1.1 准备开发环境3.1.2 新建…

Flink SQL 性能优化实战

最近我们组在大规模上线Flink SQL作业。首先&#xff0c;在进行跑批量初始化完历史数据后&#xff0c;剩下的就是消费Kafka历史数据进行追数了。但是发现某些作业的追数过程十分缓慢&#xff0c;要运行一晚上甚至三四天才能追上最新数据。由于是实时数仓指标计算上线初期&#…

HTML 树结构(DOM)深入讲解教程

一、HTML 树结构的核心概念 1.1 DOM&#xff08;文档对象模型&#xff09;的定义 DOM&#xff08;Document Object Model&#xff09;是 W3C 制定的标准接口&#xff0c;允许程序或脚本&#xff08;如 JavaScript&#xff09;动态访问和更新 HTML/XML 文档的内容、结构和样式。…

用鼠标点击终端窗口的时候出现:0;61;50M0;61;50M0;62;50M0

在做aws webrtc viewer拉流压测的过程中&#xff0c;我本地打开了多个终端&#xff0c;用于连接EC2实例&#xff1a; 一个终端用于启动 ‘并发master脚本’、监控master端的cpu、mem&#xff1b;一个终端用于监控master端的带宽情况&#xff1b;一个终端用于监控viewer端的cpu、…

C++-linux 5.gdb调试工具

GDB调试工具 在C/C开发中&#xff0c;程序运行时的错误往往比编译错误更难定位。GDB&#xff08;GNU Debugger&#xff09;是Linux环境下最强大的程序调试工具&#xff0c;能够帮助开发者追踪程序执行流程、查看变量状态、定位内存错误等。本章将从基础到进阶&#xff0c;全面讲…

Update~Read PLC for Chart ~ Log By Shift To be... Alarm AI Machine Learning

上图~ 持续迭代 1、增加报警弹窗,具体到哪个值,双边规格具体是多少 2、实时显示当前值的统计特征,Max Min AVG ... import tkinter as tk from tkinter import simpledialog import time import threading import queue import logging from datetime import datet…

es的自定义词典和停用词

在 Elasticsearch 中&#xff0c;自定义词典是优化分词效果的核心手段&#xff0c;尤其适用于中文或专业领域的文本处理。以下是关于 ES 自定义词典的完整指南&#xff1a; 为什么需要自定义词典&#xff1f; 默认分词不足&#xff1a; ES 自带的分词器&#xff08;如 Standard…

微算法科技技术突破:用于前馈神经网络的量子算法技术助力神经网络变革

随着量子计算和机器学习的迅猛发展&#xff0c;企业界正逐步迈向融合这两大领域的新时代。在这一背景下&#xff0c;微算法科技&#xff08;NASDAQ:MLGO&#xff09;成功研发出一套用于前馈神经网络的量子算法&#xff0c;突破了传统神经网络在训练和评估中的性能瓶颈。这一创新…

一文读懂循环神经网络(RNN)—语言模型+读取长序列数据(2)

目录 读取长序列数据 为什么需要 “读取长序列数据”&#xff1f; 读取长序列数据的核心方法 1. 滑动窗口&#xff08;Sliding Window&#xff09; 2. 分段截取&#xff08;Segmentation&#xff09; 3. 滚动生成&#xff08;Rolling Generation&#xff09; 4. 关键信息…

Oracle Virtualbox 虚拟机配置静态IP

Oracle Virtualbox 虚拟机配置静态IP VirtualBox的网卡&#xff0c;默认都是第一个不能自定义&#xff0c;后续新建的可以自定义。 新建NAT网卡、host主机模式网卡 依次点击&#xff1a;管理->工具->网络管理器新建host主机模式网卡 这个网卡的网段自定义&#xff0c;创建…

Linux RAID1 创建与配置实战指南(mdadm)

Linux RAID1 创建与配置实战指南&#xff08;mdadm&#xff09;一、RAID1 核心价值与实战目标RAID1&#xff08;磁盘镜像&#xff09; 通过数据冗余提供高可靠性&#xff1a;当单块硬盘损坏时&#xff0c;数据不丢失支持快速阵列重建读写性能略低于单盘&#xff08;镜像写入开销…

MySQL数据库----函数

目录函数1&#xff0c;字符串函数2&#xff0c;数值函数3&#xff0c;日期函数4&#xff0c;流程函数函数 1&#xff0c;字符串函数 MySQL中内置了很多字符串函数 2&#xff0c;数值函数 3&#xff0c;日期函数 4&#xff0c;流程函数

1.2 vue2(组合式API)的语法结构以及外部暴露

vue2 vue3中可以写vue2的语法&#xff0c;vue2的结构像一个花盆里的根&#xff08;根组件App.vue&#xff09;&#xff0c;根上可以插上不同的枝杈和花朵&#xff08;组件&#xff09;。 组件的结构&#xff1a; // 这里写逻辑行为 <script lang"ts"> export d…