情况一:非前后分离

模板

#set($NameNoController = $NAME.length() - 10)
#set($NameLowerFirst = ${NAME.substring(0,1).toLowerCase()} + $NAME.substring(1,$NameNoController))
#set($NameUpperFirst = $NAME.substring(0,$NameNoController))#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#endimport lombok.extern.slf4j.Slf4j;
import com.hc.bean.QueryBean;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.stereotype.Controller;
import org.springframework.web.servlet.ModelAndView;import javax.annotation.Resource;
import javax.validation.constraints.Null;
import java.io.Serializable;
import java.util.List;#parse("File Header.java")
@Slf4j
@Controller
@RequestMapping("/${NameLowerFirst}")
public class ${NAME} {@Resourceprivate ${NameUpperFirst}Service ${NameLowerFirst}Service;@PostMappingpublic ModelAndView create(@RequestBody ${NameUpperFirst} ${NameLowerFirst}, ModelAndView mav) {${NameLowerFirst}Service.insert(${NameLowerFirst});mav.setViewName("${NameLowerFirst}_list");return mav;}@PutMappingpublic ModelAndView updateById(@RequestBody ${NameUpperFirst} ${NameLowerFirst}, ModelAndView mav) {${NameLowerFirst}Service.updateByPrimaryKeySelective(${NameLowerFirst});mav.setViewName("${NameLowerFirst}_list");return mav;}@DeleteMapping("/{id}")public ModelAndView removeById(@PathVariable Serializable id, ModelAndView mav) {${NameLowerFirst}Service.deleteByPrimaryKey(id);mav.setViewName("${NameLowerFirst}_list");return mav;}@GetMapping("/get/{id}")public ModelAndView getById(@PathVariable Serializable id, ModelAndView mav) {${NameUpperFirst}  ${NameLowerFirst} = ${NameLowerFirst}Service.selectByPrimaryKey(id);mav.addObject("${NameLowerFirst}", ${NameLowerFirst});mav.setViewName("${NameLowerFirst}_details");return mav;}//@GetMapping("/list")//public ModelAndView list(QueryBean queryBean,//                        @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,//                        @RequestParam(name = "pageSize", defaultValue = WeGoConst.PAGE_SIZE) Integer pageSize,//                        ModelAndView mav) {//   //TODO .....queryBean转 ${NameLowerFirst},//  ${NameUpperFirst}Query ${NameLowerFirst}Query = null;//  PageBean<${NameUpperFirst}VO> pageBean = ${NameLowerFirst}Service.getPage( ${NameLowerFirst}Query,pageNum,pageSize);//  pageBean.setUrl("${NameLowerFirst}/list?");////  mav.addObject("pageBean", pageBean);////   mav.setViewName("${NameLowerFirst}_list");//     return mav;//   }
}

相关代码

QueryBean

@Getter
@Setter
@ToString
public class QueryBean {/*** 查询条件*/private String key;/*** 查询的具体值*/private String value;
}

PageBean

@Getter
@Setter
@NoArgsConstructor
public class PageBean<T> {/*** 每页显示的条数*/private Integer pageSize;/*** 当前的页码*/private Integer pageNum;/*** 一共有多少条记录*/private Long total;/*** 一共有多少页*/private Integer pages;/*** 每一页所显示的数据*/private List<T> records;/*** 分页请求路径*/private String url;/*** 将MyBatis的Page对象转换成我们自定义的PageBean对象** @param page*/public PageBean(Page<T> page) {this.pageSize = page.getPageSize();this.pageNum = page.getPageNum();this.total = page.getTotal();//将Long转换成Integer类型long tmp = this.total % this.pageSize == 0 ? this.total / this.pageSize : this.total / this.pageSize + 1;this.pages = Long.valueOf(tmp).intValue();this.records = page.getResult();}@Overridepublic String toString() {//返回当前对象的JSON字符串return JsonUtil.obj2String(this);}
}

JsonUtil

请参看:https://blog.csdn.net/lianghecai52171314/article/details/105893158

情况二:前后分离

创建模板

Intellij定位

具体模板代码:

#set($NameNoController = $NAME.length() - 10)
#set($NameLowerFirst = ${NAME.substring(0,1).toLowerCase()} + $NAME.substring(1,$NameNoController))
#set($NameUpperFirst = $NAME.substring(0,$NameNoController))#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#endimport lombok.extern.slf4j.Slf4j;import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;
import javax.validation.constraints.Null;
import java.io.Serializable;
import java.util.List;#parse("File Header.java")
@Slf4j
@RestController
@RequestMapping("/${NameLowerFirst}")
public class ${NAME} {@Resourceprivate ${NameUpperFirst}Service ${NameLowerFirst}Service;@PostMappingpublic Result<Null> create(@RequestBody ${NameUpperFirst} ${NameLowerFirst}) {boolean res = ${NameLowerFirst}Service.save(${NameLowerFirst});return res ? ResultUtil.success("添加成功") : ResultUtil.fail("添加失败");}@PutMappingpublic Result<Null> updateById(@RequestBody ${NameUpperFirst} ${NameLowerFirst}) {boolean res = ${NameLowerFirst}Service.updateById(${NameLowerFirst});return res ? ResultUtil.success("更新成功") : ResultUtil.fail("更新失败");}@DeleteMapping("{id}")public Result<Null> removeById(@PathVariable Serializable id) {boolean res = ${NameLowerFirst}Service.removeById(id);return res ? ResultUtil.success("删除成功") : ResultUtil.fail("删除失败");}@GetMapping("{id}")public Result<${NameUpperFirst}> getById(@PathVariable Serializable id) {${NameUpperFirst} res = ${NameLowerFirst}Service.getById(id);return ResultUtil.<${NameUpperFirst}>success("查询成功").setData(res);}@PostMappingpublic Result<List<${NameUpperFirst}>> getByCondition(@RequestBody  ${NameUpperFirst}Condition condition) {List<${NameUpperFirst}> list = ${NameLowerFirst}Service.queryByCondition(condition);return ResultUtil.<${NameUpperFirst}>success("查询成功").setData(list);}
}

相关代码

结果类:Result.java

@Getter
@ToString
public class Result<T> {/*** 请求响应状态码*/private int code;/*** 请求结果描述信息*/private String msg;/*** 请求结果数据*/private T data;public Result<T> setCode(int code) {this.code = code;return this;}public Result<T> setMsg(String msg) {this.msg = msg;return this;}public Result<T> setData(T data) {this.data = data;return this;}protected Result(int code, String msg, T data) {this.code = code;this.msg = msg;this.data = data;}
}

结果工具类:ResultUtil.java

public class ResultUtil<T> {/*** 操作成功,返回具体的数据、结果码和提示信息** @return 结果*/public static <T> Result<T> success() {final Result<T> result = new Result(ResultEnum.OK.getCode(), ResultEnum.OK.getMsg(), null);return result;}public static <T> Result<T> success(String msg) {final Result<T> result = new Result(ResultEnum.OK.getCode(), msg, null);return result;}/*** 操作失败,返回具体的数据、结果码和提示信息** @return 结果*/public static <T> Result<T> fail() {final Result<T> result = new Result(ResultEnum.ERROR.getCode(), ResultEnum.ERROR.getMsg(), null);return result;}public static <T> Result<T> fail(String msg) {final Result<T> result = new Result(ResultEnum.ERROR.getCode(), msg, null);return result;}/*** 操作成功,返回具体的数据、结果码和提示信息** @param resultEnum 枚举* @return 结果*/public static <T> Result<T> success(ResultEnum resultEnum) {final Result<T> result = new Result(resultEnum.getCode(), resultEnum.getMsg(), null);return result;}/*** 操作失败,返回具体的数据、结果码和提示信息** @param resultEnum 枚举* @return 结果*/public static <T> Result<T> fail(ResultEnum resultEnum) {final Result<T> result = new Result(resultEnum.getCode(), resultEnum.getMsg(), null);return result;}public static void main(String[] args) {Result<Null> r1 = ResultUtil.<Null>success().setMsg("haha");System.out.println(r1);System.out.println(r1.getMsg() == null);System.out.println(r1.getMsg() instanceof String);final Result r2 = ResultUtil.success(ResultEnum.OK);System.out.println(r2);final Result r3 = ResultUtil.success().setData(new Date());final Result r4 = ResultUtil.success(ResultEnum.OK);}
}

结果枚举类:ResultEnum.java

public enum ResultEnum {/*** 成功*/OK(200, "Success"),/*** 成功*/SUCCESS(200,"成功"),/*** 找不到*/NOT_FOUND(404, "Not Found"),/*** 服务器错误*/ERROR(500, "Server Error"),/*** 参数不正确*/PARAM_ERROR(501,"Parameter Error");/*** 操作代码*/int code;/*** 提示信息*/String msg;ResultEnum(int code, String msg) {this.code = code;this.msg = msg;}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}
}

示例


结果:

package com.resume;import com.resume.bean.Result;
import com.resume.bean.ResultUtil;
import com.resume.domain.User;
import com.resume.domain.UserQuery;
import com.resume.service.UserService;
import lombok.extern.slf4j.Slf4j;import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;
import java.io.Serializable;
import java.util.List;/*** @author 梁云亮* @version v1.0* @date 2021/8/16 21:16* @describe*/
@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {@Resourceprivate UserService userService;@PostMappingpublic Result<Void> create(@RequestBody User user) {boolean res = userService.save(user);return res ? ResultUtil.success() : ResultUtil.failure();}@PutMappingpublic Result<Void> updateById(@RequestBody User user) {boolean res = userService.updateById(user);return res ? ResultUtil.success() : ResultUtil.failure();}@DeleteMapping("{id}")public Result<Void> removeById(@PathVariable Serializable id) {boolean res = userService.removeById(id);return res ? ResultUtil.success() : ResultUtil.failure();}@GetMapping("{id}")public Result<User> getById(@PathVariable Serializable id) {User res = userService.getById(id);return ResultUtil.success(200, "查询成功", res);}@GetMappingpublic Result<List<User>> getByCondition(UserQuery condition) {List<User> list = userService.queryByCondition(condition);return ResultUtil.success(200, "查询成功", list);}
}

【精品】IntelliJ 文件模板 创建 通用Controller相关推荐

  1. IDEA使用过程中相应的配置和设置(如编码设置、窗口调整以及config.xml文件模板创建、工程打开方式、约束文件)

    1. IDEA调整工具栏的位置(原来在右边,现在调整到左边),[View]-->[Appearance]-->[Toolbar] 2. IDEA调整代码区背景([File]-->[S ...

  2. 创建一个IntelliJ Idea文件模板,将光标放在文件中的特定位置

    问题: 创建一个IntelliJ文件模板,将光标放在文件中的特定点.实时模板(live template)有$ END $,可在插入实时模板后将光标放在某个位置.那么文件模板呢(file and co ...

  3. pycharm设置文件模板

    一.pycharm设置文件模板 创建文件自动生成我们自定义的文件头,也避免重复,所以自定义模板,看起来更加清晰. 1.setting 2.editor 3.file and code template ...

  4. 【Groovy】IntelliJ IDEA 中创建 Gradle 工程 ( Gradle 工程目录文件分析 )

    文章目录 一.IntelliJ IDEA 中创建 Gradle 工程 二.Gradle 工程目录文件分析 一.IntelliJ IDEA 中创建 Gradle 工程 在 IntelliJ IDEA 中 ...

  5. IntelliJ IDEA: 无法创建Java Class文件

    IntelliJ IDEA: 无法创建Java Class文件 2018年06月21日 22:49:44 dandelion9508 阅读数 11864 今天打开项目时,发现右击新建不了java.cl ...

  6. Webstorm添加新建文件类型 创建文件模板

    Webstorm添加新建文件类型 以创建Vue文件为例:   File-Setting-Editor-File and Code Template分支,点击添加,依次输入Name和Extension, ...

  7. oXygen使用笔记:使用模板创建dita文件

    oXygen使用笔记 oXygen使用笔记:使用模板创建dita文件 oXygen使用笔记:使用模板创建dita文件 将已有的模板文件复制到oXygen安装目录下的templates文件夹. 在oXy ...

  8. 如何快速创建k8syaml文件模板

    如何快速创建k8syaml文件模板 通过dry-run导出 --dry-run参数,运行 Dry 打印相应的API对象而不创建它们. 创建yaml模板 deploy [root@zjucst-5266 ...

  9. 根据文件模板实现预览、生成word、pdf、excel(后端-项目)

    背景 页面上有一份表单,包含基本信息和列表信息,用户填写完信息后,点击预览/导出,可以预览/导出word.pdf.excel文档. 因为代码重构过,所以看流程可能会有点绕,为方便能看懂,这里直接提供了 ...

最新文章

  1. 中国民航大学计算机学院宿舍,中国民航大学计算机科学与技术学院研究生导师简介-谢丽霞_清华大学宿舍...
  2. GPT-2:OpenAI的NLP商业化野望
  3. Spring Actuator源码分析(转)
  4. php无限极分类并添加指定值,PHP实现无限极分类的两种方式,递归和引用
  5. oracle11中过程continue,Oracle 11g OCM备考之创建EM与EM登陆异常的处理
  6. 共享一个简单的 Javacript Helper library
  7. 【linux】Shell脚本中调用另外一个脚本的方法
  8. 【Unity】Planar Shadows平面阴影的实现
  9. PHP基础3_数组,循环及函数
  10. [ZJOI2015] 幻想乡战略游戏(树链剖分 + 线段树二分 + 带权重心)
  11. 漏洞payload 靶机_hackme:2 靶机攻略
  12. Codeforces Round #716 (Div. 2), B. AND 0, Sum Big, 快速幂结论题
  13. 程序员面试宝典pdf
  14. Elasticsearch索引yellow修复
  15. MyCP.java蓝墨云班课
  16. Redis-6.2.* 版本配置文件redis.conf详解
  17. error C2664: 'atof' : cannot convert parameter 1 from 'int' to 'const char *'
  18. 关于手机信号强度单位db和dBm
  19. Spring boot集成Spring-data-Jpa中遇到的问题
  20. vue base64导出(pdfexcel ) 打印(pdf)

热门文章

  1. EPIC 客户端安装提示错误 EOS-ERR-1603
  2. 用CSS把文字显示成哆啦A梦
  3. 微信公众号二次开发可以做哪些功能
  4. 大势至USB管理软件教你如何禁用U盘、屏蔽USB端口而不影响USB鼠标键盘使用!
  5. 10款网站后台管理系统模板_bootstrap网站后台模板_html后台模板下载(四)
  6. 华大单片机-串口通讯多字节
  7. 智慧停车(十五) 创业初期谈管理
  8. JSP+ssm计算机毕业设计服装销售进出货管理系统141r2【源码、数据库、LW、部署】
  9. 一汽大众维修服务器关闭,一汽大众技术通报分享566
  10. MySQL | alter修改列