SpringBoot常用注解、一些业务

一般注解

注解含义
@Datalombok的注解,包含get、set和toString方法
@Slf4j日志输出,用log.info( ) 打印日志
@Configuration告诉Spring Boot这是一个配置类
@ExceptionHandler({*Exception.class,…class,…class})自定义异常处理器
@RestController@Controller和@ResponseBody的结合
@RequestParam(required=true)获取前端请求参数。value:请求中传入参数的名称,如果不设置后台接口的value值,则会默认为该变量名;required:该参数是否为必传项。默认是true,表示请求中一定要传入对应的参数,否则会报404错误,如果设置为false时,当请求中没有此参数,将会默认为null
@RequestBody请求方法体。获取前端传入的对象
@PathVariable将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过@PathVariable(“xxx“) 绑定到操作方法的入参中
@JsonSerialize(using = ToStringSerializer.class)序列化器,防止因为前后端传参数发生的不一致
@TableField(fill = FieldFill.INSERT)新增时自动填充,fill=FiledFill.INSERT_UPDATE:新增或修改自动填充
@TableField(exist = false)当前属性不是数据库的字段,但在项目中必须使用,这样可以用来把一个数据表当作一个字段来输出,用来实现表中表数据输出
@Param@Param的作用就是给参数命名,比如在mapper里面某方法A(int id),当添加注解后A(@Param(“userId”) int id),也就是说外部想要取出传入的id值,只需要取它的参数名userId就可以了。将参数值传如SQL语句中,通过#{userId}进行取值给SQL的参数赋值

业务实现

1.文件上传与下载

@RestController
@RequestMapping("/common")
public class CommonController {

    @Value("${ruiji.path}")
    private String basePath;

    @PostMapping("/upload")
    public JsonResult<String> upload(MultipartFile file){
        //得到传入的图片名称
        String originalFilename = file.getOriginalFilename();
        //通过UUID生成新的图片名前缀
        String fileNamePrefix = UUID.randomUUID().toString();
        //截取原图片名称后缀
        String fileNameSuffix = originalFilename.substring(originalFilename.lastIndexOf('.'));
        //拼接成fileName
        String fileName = fileNamePrefix + fileNameSuffix;
        //保证存储位置有这个文件夹
        File dir = new File(basePath);
        if (!dir.exists()) {
            dir.mkdirs();
        }
        //MultipartFile将你上传的图片存入临时文件中,所以要转存
        try {
            file.transferTo(new File(basePath + fileName));
        } catch (IOException e) {
            e.printStackTrace();
        }
        return new JsonResult<>(1,fileName);
    }
    //图片下载通过字节流,所以不需要返回值
    @RequestMapping("/download")
    //要将图片显示在浏览器上,所以用HttpServletResponse
    public void download(@RequestParam String name, HttpServletResponse httpServletResponse) throws IOException {
        //读文件
        FileInputStream fileInputStream = new FileInputStream(new File(basePath + name));
        //把读取到内存中的图片用输出流写入Servlet响应对象里
        ServletOutputStream outputStream = httpServletResponse.getOutputStream();
        //可选项,选择响应类型
        httpServletResponse.setContentType("image/jpeg");

        byte[] b = new byte[1024];
        //记录每次写入byte的长度
        int lenth;
        while ((lenth = fileInputStream.read(b))!=-1){
            outputStream.write(b,0,lenth);
            //刷新
            outputStream.flush();
        }
        //关闭流
        fileInputStream.close();
        outputStream.close();
    }
}

2.随机数生成
转载:生成随机数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值