毕设问题汇总

1、在项目中在每个RestApi中第一个参数的@Validated只是给这个接口标记一下
eg:@Validated({update.class})是和实体类上属性的eg:@IdValid(groups ={update.class})对应着,意味着这个api接口的参数要执行这个@IdValid方法的校验,然后api接口的第三个参数BindingResult的作用是:bindResult.hasErrors()判断是否校验通过,校验未通
bingdingResult.getFiledError().getDefaultMessaget()获取在TestEntity的属性设置的自定义的message。


2、使用mybatis-plus的@TableField注解的作用
在这里插入图片描述
在这里插入图片描述
实体类中有如下属性,通过上面的自动填充属性,我们可以实现

在进行插入操作时对

添加了注解@TableField(fill = FieldFill.INSERT)

的字段进行自动填充。

对添加了注解@TableField(fill = FieldFill.INSERT_UPDATE)

的字段在进行插入和更新时进行自动填充。

/**
 * 创建时间
 */
@TableField(fill = FieldFill.INSERT)
private Date gmtCreat;

/**
 * 修改人
 */
@TableField(fill = FieldFill.INSERT_UPDATE)
private Long modifierId;

/**
 * 修改时间
 */
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date gmtModified;

/**
 * 是否可用
 */
@TableField(fill = FieldFill.INSERT)
private Boolean availableFlag;

实现自动赋值的原理:在项目的config包下新建自动填充处理类使其实现接口MetaObjectHandler并重写其方法
在这里插入图片描述
其中方法参数中第一个是前面自动填充所对应的字段,第二个是要自动填充的值。

@TableField字段验证的作用:
常见的验证如下:
@TableField(updateStrategy = FieldStrategy.IGNORED):允许该字段为空(映射表的字段)
@TableFile(exist= false) 表示当前属性不是数据库的字段,但在项目中必须使用,这样在新增等使用bean的时候,mybatis-plus就会忽略这个,不会报错


3、@EnableGlobalMethodSecurity(prePostEnabled=true)注解的作用
作用:开启基于方法的安全认证机制,也就是说在web层的controller启用注解机制的安全确认

    @ApiOperation(value = "获取用户列表", httpMethod = "GET")
    @GetMapping
    @PreAuthorize("hasAuthority('admin')")
    //Authentication authentication,当前用户信息
    public ResponseEntity<PageResult<UserVO>> list(Authentication authentication, UserDTO userDTO, @Min(1) @RequestParam(defaultValue = "1") Integer pageNo, @Max(100) @Min(5) @RequestParam(defaultValue = "10") Integer pageSize) {
        System.out.println(authentication);
        PageInfo<UserVO> listByPage = userService.getListByPage(userDTO, pageNo, pageSize);
        PageResult<UserVO> result = new PageResult<>();
        result.setTotal(listByPage.getTotal());
        result.setData(listByPage.getList());
        result.setTotalPage(listByPage.getPages());
        result.setPageNO(pageNo);
        result.setPageSize(pageSize);
        return ResponseEntity.ok(result);
    }

只有加了@EnableGlobalMethodSecurity(prePostEnabled=true) 那么在上面使用的 @PreAuthorize(“hasAuthority(‘admin’)”)才会生效


4、注解@Order或者接口Ordered的作用是定义Spring IOC容器中Bean的执行顺序的优先级,而不是定义Bean的加载顺序,Bean的加载顺序不受@Order或Ordered接口的影响


5、什么是JWT
JWT讲解

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值