当前位置: 首页 > news >正文

域名 和网站有什么区别吗东莞做网络推广的公司

域名 和网站有什么区别吗,东莞做网络推广的公司,网站主机是什么,云阳网站制作随着项目节奏越来越快,为了减少把时间浪费在新建DTO 、VO 等地方,直接直接基于Mybatis-plus 这颗大树稍微扩展一下,在原来生成PO、 DAO、Service、ServiceImpl、Controller 基础新增。为了解决这个问题,网上找了一堆资料&#xff…

随着项目节奏越来越快,为了减少把时间浪费在新建DTO 、VO 等地方,直接直接基于Mybatis-plus 这颗大树稍微扩展一下,在原来生成PO、 DAO、Service、ServiceImpl、Controller 基础新增。为了解决这个问题,网上找了一堆资料,发现都是老版本的,都是基于老的AutoGenerator ,里面配置非常臃肿,基于FastAutoGenerator 链式实现没有,通过Mybatis-Plus官方文档发现两个核心配置注入配置 (InjectionConfig),下面是官方文档解释

上面是官方文档的案例,存在两个问题,一个并没有other这个属性,第二个框生成的DTO实体会在系统parent目录下。本着要弄就要完美的执着,通过一下午翻阅mybatis-plus-generator 的源码,终于找到定位输出目录类配置CustomFile。下面直接上代码

POM依赖:

  <!--gen code start--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.5</version></dependency><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.33</version></dependency><!--gen code ebd-->

构建代码:

 FastAutoGenerator.create("jdbc:mysql://xxxx:63306/diboot","diboot", "xxx")//全局配置.globalConfig(builder -> {builder.outputDir(Paths.get(System.getProperty("user.dir")) + "/src/main/java").author("xxx").build();})//包配置.packageConfig(builder -> {builder.parent("com.example.demo").entity("model.po").service("biz").serviceImpl("biz").mapper("dao")// .xml("dao.xml").controller("api.back").build();})//表策略配置.strategyConfig(builder -> {builder.enableSkipView().disableSqlFilter().addTablePrefix("biz_", "sys_").addInclude("biz_article").build();})//entity策略.strategyConfig(builder -> {builder.entityBuilder().idType(IdType.ASSIGN_ID).superClass(BaseModel.class).disableSerialVersionUID().enableRemoveIsPrefix().enableLombok().addIgnoreColumns("is_deleted", "create_time", "update_time").build();})//controller 策略.strategyConfig(builder -> {builder.controllerBuilder().enableHyphenStyle().enableRestStyle().formatFileName("%sController").build();})//Service 策略.strategyConfig(builder -> {builder.serviceBuilder().superServiceClass(IService.class).superServiceImplClass(ServiceImpl.class).formatServiceFileName("%sService").formatServiceImplFileName("%sServiceImpl").build();})//mapper 策略.strategyConfig(builder -> {builder.mapperBuilder().superClass(BaseMapper.class).mapperAnnotation(Repository.class).enableBaseResultMap().enableBaseColumnList().formatMapperFileName("%sMapper").build();})//注入自定义配置.injectionConfig(builder -> {/**自定义生成模板参数,在ftl模版里取值使用**/Map<String,Object> data = new HashMap<>();data.put("entityBuilderModel", true);data.put("chainModel", true);data.put("swagger",true);data.put("entitySerialVersionUID",true);data.put("entityLombokModel", true);builder.customMap(data);List<CustomFile> customFiles = new ArrayList();/**DTO实体**/CustomFile updateInputFile = new CustomFile.Builder().fileName("UpdateInput.java")//生成java文件名称,要和ftl模版里的文件名保持一致.templatePath("/templates/UpdateInput.java.ftl")//实体模板位置.packageName("model.dto")//生成文件包名.build();customFiles.add(updateInputFile);CustomFile addInputFile = new CustomFile.Builder().fileName("AddInput.java").templatePath("/templates/AddInput.java.ftl").packageName("model.dto").build();/**Vo实体**/CustomFile customFileVO = new CustomFile.Builder().fileName("VO.java").templatePath("/templates/VO.java.ftl").packageName("model.vo").build();customFiles.add(customFileVO);customFiles.add(addInputFile);builder.customFile(customFiles);}).templateEngine(new FreemarkerTemplateEngine()).execute();

DTO ftl模版,为了测地解决不需要修改生成实体,根据数据库字段注释生成实体字段注释,根据数据库字段是否允许为空 加上NotBlank 或者 NotNull  以及 @ApiModelProperty 的required 的条件

新增DTO模版代码,已经调试过输出美化内容,有需要的可以直接复制

package ${package.Parent}.model.dto;
<#if swagger>
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
</#if>
<#if entityLombokModel>
import lombok.Getter;
import lombok.Setter;<#if chainModel>
import lombok.experimental.Accessors;</#if>
</#if>
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.io.Serializable;
import java.io.Serial;
import java.time.*;
/**
* <p>* ${table.comment!}* </p>
*
* @author ${author}
* @since ${date}
*/
<#if entityLombokModel>
@Getter
@Setter<#if chainModel>
@Accessors(chain = true)</#if>
</#if>
<#if swagger>@ApiModel(description = "${table.comment!}")
</#if>
public class ${entity}AddInput implements Serializable {
<#if entitySerialVersionUID>@Serialprivate static final long serialVersionUID = 1L;
</#if>
<#-- ----------  BEGIN 字段循环遍历  ---------->
<#list table.fields as field><#if !field.keyFlag && field.propertyName!="tenantId"&&field.propertyName!="museumId"><#--不是主键、不是租户ID 输出--><#if field.comment!?length gt 0><#if field.metaInfo.nullable>@ApiModelProperty(value="${field.comment}")<#else>@ApiModelProperty(value="${field.comment}",required = true)<#if field.propertyType=="string">@NotBlank(message = "${field.comment}不能为空")<#else>@NotNull(message = "${field.comment}不能为空")</#if></#if></#if>private ${field.propertyType} ${field.propertyName};</#if>
</#list>
<#------------  END 字段循环遍历  ---------->
}

生成效果图:自动加上参数校验

修改DTO模版代码
 

package ${package.Parent}.model.dto;
<#if swagger>
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
</#if>
<#if entityLombokModel>
import lombok.Getter;
import lombok.Setter;<#if chainModel>
import lombok.experimental.Accessors;</#if>
</#if>
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.io.Serializable;
import java.io.Serial;
import java.time.*;
/**
* <p>* ${table.comment!}* </p>
*
* @author ${author}
* @since ${date}
*/
<#if entityLombokModel>
@Getter
@Setter<#if chainModel>
@Accessors(chain = true)</#if>
</#if>
<#if swagger>@ApiModel(description = "${table.comment!}")
</#if>
public class ${entity}UpdateInput implements Serializable {
<#if entitySerialVersionUID>@Serialprivate static final long serialVersionUID = 1L;
</#if>
<#-- ----------  BEGIN 字段循环遍历  ---------->
<#list table.fields as field><#if field.propertyName!="tenantId"&&field.propertyName!="museumId"><#--不是租户ID 输出--><#if field.comment!?length gt 0><#if field.metaInfo.nullable>@ApiModelProperty(value="${field.comment}")<#else>@ApiModelProperty(value="${field.comment}",required = true)<#if field.propertyType=="string">@NotBlank(message = "${field.comment}不能为空")<#else>@NotNull(message = "${field.comment}不能为空")</#if></#if></#if>private ${field.propertyType} ${field.propertyName};</#if>
</#list>
<#------------  END 字段循环遍历  ---------->
}

生成效果图:

VO模版:

package ${package.Parent}.model.vo;
<#if swagger>import io.swagger.annotations.ApiModel;import io.swagger.annotations.ApiModelProperty;
</#if>
<#if entityLombokModel>import lombok.Getter;import lombok.Setter;<#if chainModel>import lombok.experimental.Accessors;</#if>
</#if>
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.io.Serializable;
import java.io.Serial;
import java.time.*;
/**
* <p>* ${table.comment!}* </p>
*
* @author ${author}
* @since ${date}
*/
<#if entityLombokModel>
@Getter
@Setter<#if chainModel>
@Accessors(chain = true)</#if>
</#if>
<#if swagger>@ApiModel(description = "${table.comment!}")
</#if>
public class ${entity}VO implements Serializable {
<#if entitySerialVersionUID>@Serialprivate static final long serialVersionUID = 1L;
</#if>
<#-- ----------  BEGIN 字段循环遍历  ---------->
<#list table.fields as field><#if field.propertyName!="tenantId"&&field.propertyName!="museumId"><#--不是租户ID 输出--><#if field.comment!?length gt 0>@ApiModelProperty(value="${field.comment}")</#if>private ${field.propertyType} ${field.propertyName};</#if>
</#list>
<#------------  END 字段循环遍历  ---------->
}

效果图:

项目结构截图:

能看到这里应该有个大概的了解了,既然能生成自定义DTO 和 VO,那我们完全也可以覆盖之前的默认Service,将生成好的 DTO 和VO 放入 Service 模版里,然后将Service模版里 放入Controller模版里,那我们一次性就可以把 PO VO DTO 以及 Service 里增删改查 全部实现,并放到 Controller接口 ,那常用的业务基本上就可以使用了,接口上加上一些权限 注解和日志注解。如果有些特殊的逻辑再生成的service调整即可。后续有时间,把Service的模版也出一个教程。

http://www.ds6.com.cn/news/6536.html

相关文章:

  • 企业网站哪个好网站域名解析
  • 广州网站建设定制哪家口碑好黑帽seo技术有哪些
  • 做策划有帮助的网站网络推广的手段
  • 自己做网站 怎么赚钱提升seo排名平台
  • 美容行业培训网站建设网络推广员工作内容
  • mysol做的选课网站网店运营培训哪里好
  • 网站开发如何修改字体公司营销网站建设
  • wordpress内容隐藏seo01
  • 二级分销软件营销型网站建设优化建站
  • 网络公司除了做网站百度app下载官方免费最新版
  • 邢台集团网站建设费用手机版百度入口
  • 怎么分享wordpress谷歌seo排名优化
  • 电子商务网站建设设计题深圳seo优化公司哪家好
  • 网站制作交流论坛网站seo站群软件
  • 做外贸在什么网站上比较好外贸网站建站
  • 盐城网站开发建设竞价推广是什么意思
  • 服装设计网站大全网站优化排名方法有哪些
  • 上海大型企业名单二十条优化措施原文
  • 用dw做网站的空格怎么打seo线上培训班
  • 做阿里巴巴网站店铺装修费用小红书推广怎么做
  • wordpress精简版下载地址深圳龙岗区优化防控措施
  • 广州自助建站软件淄博seo网站推广
  • 有哪几个平台做网站做网站需要什么条件
  • cgi做网站建设网站前的市场分析
  • 做网站去哪里做如何优化网络连接
  • 对网站建设的建议长沙网站制作策划
  • 应用公园app在线制作seo网站关键词优化快速官网
  • 郑州做网站排名如何快速推广自己的品牌
  • 小程序网站建设y021百度推广怎么收费的
  • 安卓从网站获取视频怎么做全网自媒体平台