java 技术随笔

SpringBoot的推荐项目目录结构

Spring Boot 官方推荐约定优于配置(Convention over Configuration),合理的包结构能让组件扫描、自动装配、配置加载都更顺手。下面是一套常用的目录结构示例(根包 com.example.demo)。

一、代码层结构(src/main/java)

包名用途
com.example.demo工程启动类 Application.java(带 @SpringBootApplication,置于根包)
com.example.demo.domain / entity / model实体类(与数据库表映射的 POJO)
com.example.demo.repository / dao / mapper数据访问层(JPA Repository / MyBatis Mapper)
com.example.demo.service业务服务接口
com.example.demo.service.impl业务服务实现类
com.example.demo.controller / web / api前端控制器(接收 HTTP 请求)
com.example.demo.config配置类(@Configuration,如数据源、Security、Swagger)
com.example.demo.utils / common工具类、公共方法
com.example.demo.constant常量 / 枚举定义
com.example.demo.vo / dto数据传输对象(接口入参 / 出参)

注意:启动类放在根包下,Spring Boot 才能默认扫描到它之下的所有子包组件;若组件不在根包下,需用 @SpringBootApplication(scanBasePackages = "...") 显式指定。

二、资源文件结构(src/main/resources)

路径用途
application.yml / application.properties主配置文件(也可放 config/ 下)
i18n/国际化消息文件(messages_*.properties)
static/静态资源(js / css / images),直接可访问
templates/模板文件(Thymeleaf / Freemarker 等)
mapper/ 或 resources 下的 xmlMyBatis 的 SQL 映射文件
META-INF/spring.factories自动装配扩展(如需自定义 starter)

三、测试与构建

测试代码放在 src/test/java 下,包结构与 main 对应;src/main/resourcessrc/test/resources 分离配置。pom.xml / build.gradle 里用 spring-boot-maven-plugin 打成可执行 jar 即可。

标签
springbootjava