如何禁止生成controller?需要两个地方同时配置才行,缺一不可: 1、必须在strategyConfig的builder中设置controllerBuilder().disable() 2、必须在packageConfig的builder中设置pathInfo(Collections.singletonMap(OutputFile.controller, null)) 具体原因见AbstractTemplateEngine类中的outputController方法中的逻辑:
protected void outputController(@NotNull TableInfo tableInfo, @NotNull Map<String, Object> objectMap) {
// MpController.java
Controller controller = this.getConfigBuilder().getStrategyConfig().controller();
String controllerPath = getPathInfo(OutputFile.controller);
if (controller.isGenerate() || (StringUtils.isNotBlank(tableInfo.getControllerName()) && StringUtils.isNotBlank(controllerPath))) {
String entityName = tableInfo.getEntityName();
String controllerFile = String.format((controllerPath + File.separator + tableInfo.getControllerName() + suffixJavaOrKt()), entityName);
outputFile(getOutputFile(controllerFile, OutputFile.controller), objectMap, templateFilePath(controller.getTemplatePath()), getConfigBuilder().getStrategyConfig().controller().isFileOverride());
}
}
可以看到if里面是或,也就是光controllerBuilder().disable()还不行,必须OutputFile.controller也设置为null或者空字符串才行。