如何使用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 Controllercom.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
- 自定义蓝图的话:
- 建一个JHipster蓝图项目,在
generator目录下修改模板文件(比如controller.ejs、service.ejs),写好你要的包路径 - 把蓝图装到本地,生成项目时用
jhipster --blueprint 你的蓝图名调用
- 建一个JHipster蓝图项目,在
- 嫌麻烦的话,直接用参数指定根包:
jhipster --package-name com.mycompany.customer
关键注意点
- 不管怎么改,得确保所有组件(Controller、Service这些)都在Spring的扫描范围内,不然会出现Bean找不到的问题
- 挪完文件后,记得改类里的
package声明和import语句,别漏了 - Maven/Gradle会自动识别Java文件的包路径对应目录结构,只要你文件路径和包名对应上就不用额外配置项目结构
内容的提问来源于stack exchange,提问作者Sreedhar Singaraju
相关产品推荐
相关产品推荐

