电商项目学习摸索笔记3

注:因电商项目学习摸索笔记_csdn电商-CSDN博客 篇幅不想过长,所以将一些从此项目中新学的技术栈放在了这里。

1、Knife4j        API文档自动生成

Knife4j基于Swagger(操作基本与swagger相同),可以直接解析Swagger注解生成API文档,无需额外的配置和编写文档。

对于使用Knife4j的教程,你可以按照以下步骤进行操作:

  1. 引入依赖:在你的项目中添加Knife4j的相关依赖,具体的依赖配置可以参考Knife4j的官方文档,并配置swagger参数。
  2. 配置Swagger注解:在你的API接口类和方法上添加Swagger注解,用于描述接口的信息、参数、返回值等。
  3. 启动项目:启动你的项目,访问Knife4j的接口文档页面,默认情况下可以通过/doc.html路径访问。
  4. 查看和测试接口:在Knife4j的文档页面上,你可以查看和测试你的API接口。可以通过分类、搜索等方式快速定位到需要的接口,点击接口可以查看详细的接口信息和示例。

一下操作基于springboot3(springboot2的依赖引入有所不同)

参考文档:Springboot 3整合Knife4j(Swagger3、OpenApi3)_springboot3 knife4j-CSDN博客

引入依赖

<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-dependencies</artifactId>
    <version>${knife4j.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
</dependency>

swagger文档配置类

@Configuration
public class SwaggerConfiguration {
    @Bean
    public GroupedOpenApi createRestApi() {
       return GroupedOpenApi.builder()
             .group("接口文档")
             .packagesToScan("com.dora.shop.api").build();
    }
    @Bean
    public OpenAPI springShopOpenApi() {
       return new OpenAPI()
             .info(new Info().title("Mall4j接口文档")
                   .description("Mall4j接口文档,openapi3.0 接口,用于前端对接")
                   .version("v0.0.1")
    }
}

在接口添加swagger注解

零碎知识点:

注解:

@Cacheable

缓存注解,用于指示该方法的返回值可以被缓存。当方法被调用时,如果缓存中已经存在对应的数据,则直接从缓存中获取,否则执行方法并将结果存入(spring)缓存。其中,cacheNames指定缓存的名称,key指定缓存的键,使用方法参数prodId作为键值。(cacheNames#prodId:Product )

例:@Cacheable(cacheNames = "product", key = "#prodId")
public Product getProductByProdId(Long prodId) {
    return productMapper.selectById(prodId);
}

通用类:

@JsonIgnore
作用:在json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。
@EqualsAndHashCode(callSuper = false)
自动给bean实现equals方法和hashcode方法。callsuper = false表示生成hashcode时不使用父类的属性,true表示子类和父类属性都用(两个类仅当子属性与父属性都相等时才相等)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd")
对从前端接收到的属性进行pattern格式化。

@JsonSerialize(using = ImgJsonSerializer.class)
使用我自定义的序列化器(ImgJsonSerializer.class)来序列化

@Valid校验:

@NotNull
若对bean属性加@NotNull,则在controller层接收前端参数前加@Valid,才能开启校验
@Min(value = 1,message = "产品数量不能为空")
@Size(max = 200, message = "商品名称长度应该小于{max}")
@NotEmpty(message = "退款编号不能为空")---一般用于集合或数组
@NotBlank-----只能作用在接收的 String 类型上,注意是只能,不能为 null,而且调用 trim() 后,长度必须大于 0即:必须有实际字符
@Pattern(regexp="1[0-9]{10}",message = "请输入正确的手机号")
!!!以上注解用法都同@NotNull

数据库MyBatis Plus:

@TableName("tz_area")
一般加载model类顶,将指定的数据库表和 JavaBean 进行映射
@TableId
主键
@TableField(exist=false)
表示这个字段不是数据库中的字段,而是自己添加的字段。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值