internship:术语了解及着手写接口

多线程和高并发:多线程是完成任务的一种方法,高并发是系统运行的一种状态,通过多线程有助于系统承受高并发状态的实现。主要发生在web系统集中大量访问或者socket端口集中性收到大量请求
多线程只是解决高并发的方法之一。

接触项目代码之后 才认识到之前所接触的MVC具体内容——经典MVC模式中,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。其中,View的定义比较清晰,就是用户界面。 也就是module业务模型的具体内容。

@Api里的属性tags 主要是依据api文档,tags表示业务总功能描述,如同list集合,该总功能下涵盖多个功能模块,对等理解就是 总功能即为类 多个功能模块就是对应的方法。

基于整体项目代码的了解、熟悉。明白每一个类的创建是基于数据库表结构(字段、数据类型等等)并且extends model< T >。
除此以外,需要熟悉的注解内容有——
@Data(自不用多介绍 使用很多次)

@ApiOperationSupport
使用ApiOperationSupport的前提是需要先把swagger2配置好后再使用以下方法,用在controller层上,为控制类排序。

@EqualsAndHashCode(callSuper = true)
此注解会生成equals(Object other) 和 hashCode()方法。一般设置为callSuper=true(除非是判断两者对象是否一致)
它默认使用非静态,非瞬态的属性
可通过参数exclude排除一些属性
可通过参数of指定仅使用哪些属性
它默认仅使用该类中定义的属性且不调用父类的方法

@ApiParam(name = “username”, value = “用户名”, required = true)
参数required表示 该参数是否必填。

@Accessors(chain = true)
Accessor的中文含义是存取器,@Accessors用于配置getter和setter方法的生成结果
chain的中文含义是链式的,设置为true,则setter方法返回当前对象

@ApiModel(value="BizExitInfo对象", description="")

使用场景
在实体类上边使用,标记类时swagger的解析类

@ApiModelProperty

使用场景
使用在被 @ApiModel 注解的模型类的属性上
概述
添加和操作模型属性的数据

@ApiModelProperty(value = "名称")//说明
@TableField("name")//对应表结构字段名

置于属性上

除以上实体类是基于每一个表而创建,那么在api文档里的响应参数 需要单独建立model 在写接口时便于调用。

接口一般return ResponseData类 ,需要返回数据。
其次在一般登录验证方面利用apache的安全框架shiro,实现用户身份认证、权限授权、加密、会话管理等功能。

逐渐明白接口的注解在干些什么,其实就是在为api文档布局罢了。比如@ApiSort为接口排序,再则接口是为前端提供的,那么接口的生成是在其他创建完成(比如 service层 、dao层、pojo和配置文件等等)的基础上,因此在写接口的时候会发现 代码的简略和注解繁多。利用MyBatis-Plus之后大多数会创建的类会去继承MyBatis-Plus已有的。

package com.hyd.daring.api;

import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.hyd.daring.common.response.ResponseData;
import com.hyd.daring.service.IBizAttendanceRecordService;
import com.hyd.daring.transfer.app.AttendanceIndexModel;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.annotations.ResultMap;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.time.YearMonth;

/**
 *月花销接口Demo
 *
 * @author yyp
 */
@RestController
@RequestMapping("/MonthPay")
@Api( tags ="月销接口")
@Slf4j
public class DemoApi {

    @Resource
    private IBizAttendanceRecordService iBizAttendanceRecordService;

    /**
     *
     * 月销—首页(本月花销情况)
     *
     */
    @RequestMapping(value = "/thisYear/index")
    @ApiOperation(value = "今年本月的花销")
    @ApiOperationSupport(order = 1)
    public ResponseData<AttendanceIndexModel> attendanceIndex(
            @ApiParam(name="yearId",value="第几年",required=true) Integer yearId )
    {
        return new ResponseData<>(iBizAttendanceRecordService.attendanceIndex(yearId));
    }




}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值