You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JHipster自定义Spring Boot CRUD生成的目标文件夹结构

自定义Spring Boot Customer CRUD项目的文件夹结构

方法一:手动搭建(最灵活可控)

别依赖自动生成的默认结构,自己动手搭:

  • 先定好根包,比如com.mycompany.customer(换成你想要的命名)
  • 按功能拆分子包,举个例子:
    • com.mycompany.customer.persistence:放Customer实体类和Repository接口
    • com.mycompany.customer.business:放Service层的业务逻辑代码
    • com.mycompany.customer.api:放REST Controller
    • com.mycompany.customer.config:放JPA、Swagger这类配置类
  • 启动类上加@SpringBootApplication(scanBasePackages = "com.mycompany.customer"),保证Spring能扫到所有组件
  • 手动创建各层类,按自定义包路径放好就行

方法二:Spring Initializr初始化时指定基础结构

用Initializr生成项目时就能定好基础:

  • 生成页面里的「Group」填根包前缀,比如com.mycompany.customer,「Artifact」填项目名,生成后的根包就是com.mycompany.customer
  • 生成后手动调整子包,比如把默认的controller改成api,repository改成persistence,把对应的文件挪过去
  • 要是子包都是根包的子目录,Spring默认会自动扫描,不用额外改启动类配置

方法三:自定义代码生成器模板(批量生成必用)

如果用MyBatis Generator、JHipster这类工具生成代码,直接改模板配置:

MyBatis Generator

  • 写generatorConfig.xml,在<context>里配置各层的目标包:
    <context id="MySqlContext" targetRuntime="MyBatis3">
        <!-- 实体类的包路径 -->
        <javaModelGenerator targetPackage="com.mycompany.customer.persistence.entity" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaModelGenerator>
        <!-- Mapper接口的包路径 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.mycompany.customer.persistence.mapper" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
        <!-- Mapper XML文件的路径 -->
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>
    </context>
    
  • 运行生成命令,代码会自动落到你指定的目录里

JHipster

  • 自定义蓝图的话:
    1. 建一个JHipster蓝图项目,在generator目录下修改模板文件(比如controller.ejs、service.ejs),写好你要的包路径
    2. 把蓝图装到本地,生成项目时用jhipster --blueprint 你的蓝图名调用
  • 嫌麻烦的话,直接用参数指定根包:jhipster --package-name com.mycompany.customer

关键注意点

  • 不管怎么改,得确保所有组件(Controller、Service这些)都在Spring的扫描范围内,不然会出现Bean找不到的问题
  • 挪完文件后,记得改类里的package声明和import语句,别漏了
  • Maven/Gradle会自动识别Java文件的包路径对应目录结构,只要你文件路径和包名对应上就不用额外配置项目结构

内容的提问来源于stack exchange,提问作者Sreedhar Singaraju

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 17:36:18