小型框架集合

一、VUE框架qs框架

formdata数据格式转换

npm i qs -S

添加(main.js)

import qs from 'qs';

Vue.prototype.qs=qs;

使用:let formData= this.qs.stringify(this.ruleForm);;主要功能代替JSON对象转换为fromdata数据往后台传输,后台不用添加@RequestBody

二、jackson框架

主要用于序列化和反序列化(SpringMVC自动加载)

使用:#jackson:JSON中有null值时不显示空值

jackson: default-property-inclusion: non_null

三、在线文档 Knife4j

Knife4j是一款基于Swagger 2的在线API文档框架。当前建议使用的Knife4j版本,只适用于Spring Boot 2.6以下版本,不含Spring Boot 2.6, 在主配置文件(application.yml)中开启Knife4j的增强模式, 添加Knife4j的配置类,进行必要的配置, 必须指定控制器的包。

        添加依赖



    com.github.xiaoymin
    knife4j-spring-boot-starter
    2.0.9

         主配置文件

在`application.yml`中添加配置:
 
```yaml
knife4j:
  enable: true

        添加配置类config

package cn.tedu.csmall.passport.config;
 
import com.github.xiaoymin.knife4j.spring.extension.OpenApiExtensionResolver;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
 
/**
 * Knife4j配置类
 *
 * @author [email protected]
 * @version 0.0.1
 */
@Slf4j
@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfiguration {
 
    /**
     * 【重要】指定Controller包路径
     */
    private String basePackage = "cn.tedu.csmall.passport.controller";
    /**
     * 分组名称
     */
    private String groupName = "passport";
    /**
     * 主机名
     */
    private String host = "http://xxxxx.cn";
    /**
     * 标题
     */
    private String title = "酷鲨商城在线API文档--管理员管理";
    /**
     * 简介
     */
    private String description = "酷鲨商城在线API文档--管理员管理";
    /**
     * 服务条款URL
     */
    private String termsOfServiceUrl = "http://www.apache.org/licenses/LICENSE-2.0";
    /**
     * 联系人
     */
    private String contactName = "wk";
    /**
     * 联系网址
     */
    private String contactUrl = "http://xxxxx.cn";
    /**
     * 联系邮箱
     */
    private String contactEmail = "[email protected]";
    /**
     * 版本号
     */
    private String version = "1.0.0";
 
    @Autowired
    private OpenApiExtensionResolver openApiExtensionResolver;
 
    public Knife4jConfiguration() {
        log.debug("加载配置类:Knife4jConfiguration");
    }
 
    @Bean
    public Docket docket() {
        String groupName = "1.0.0";
        Docket docket = new Docket(DocumentationType.SWAGGER_2)
                .host(host)
                .apiInfo(apiInfo())
                .groupName(groupName)
                .select()
                .apis(RequestHandlerSelectors.basePackage(basePackage))
                .paths(PathSelectors.any())
                .build()
                .extensions(openApiExtensionResolver.buildExtensions(groupName));
        return docket;
    }
 
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title(title)
                .description(description)
                .termsOfServiceUrl(termsOfServiceUrl)
                .contact(new Contact(contactName, contactUrl, contactEmail))
                .version(version)
                .build();
    }
 
}
 

        在Controller层中的应用 :

@Api(tags = "1管理员管理模块") :配置模块的名称

@ApiOperation("添加管理员"):配置业务的名称

@ApiOperationSupport(order = 100):给业务添加编号

@Api(tags = "1管理员管理模块")
@RestController
@RequestMapping("/admins")
public class AdminController {
    @Autowired
    IAdminService iAdminService;
 
    @ApiOperation("添加管理员")
    @ApiOperationSupport(order = 100)
    @PostMapping("/add-new")
    public JSONResult addNew(AdminAddNewDTO adminAddNewDTO) {
        iAdminService.addNew(adminAddNewDTO);
        return JSONResult.ok();
    }
}
 

完成后,启动项目,通过 http://localhost:9081/doc.html 即可访问在线API文档!

四、spring-validation框架(检查封装在pojo中的对象)

  
        
            org.springframework.boot
            spring-boot-starter-validation
        
public class AlbumAddNewDTO {
    @NotNull(message = "添加失败,数据不能为空")
    private String name;
    private String description;
    private Integer sort;
}

        在请求前添加@Valid注解,用于判断字符是否符合规范 

@ApiOperation("添加相册")
@ApiOperationSupport(order = 400)
//在类上添加ResquestMaping 会将路径拼接起来全名("/albim/add-new")
@PostMapping(value = "/add-new")
public JSONResult addNew(@Valid AlbumAddNewDTO albumAddNewDTO) {
    albumService.addNew(albumAddNewDTO);
    log.trace(albumAddNewDTO.toString());
    return JSONResult.ok();
}

        **配置快速失败,遇到一个不符合规范的立马停止检查

@Configuration
@Slf4j
public class ValidationConfiguration {
    public ValidationConfiguration() {
        System.out.println("ValidationConfiguration配置类开始启动");
    }

    //快速失败,遇到错误立马输出并停止不载向后检查
    @Bean
    public javax.validation.Validator validator() {
        return Validation.byProvider(HibernateValidator.class)
                .configure()
                .failFast(true)
                .buildValidatorFactory()
                .getValidator();
    }
}

 

你可能感兴趣的:(工具链接,vue.js,javascript,前端)