工具类的复用思想

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

当多个地方用到同一个方法或者是在同一个方法仅仅多几个参数,使得多处几步处理,而最后返回的结果是一样的或者不返回,此时可以采取类的复用


# 一、什么是类的复用?

类的复用就是在少参数的函数上面添加一些固定的参数,然后返回多参数的函数本身达到复用的目的

二、使用步骤

1.复用过程举例如下

代码如下:

package utils;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;

import java.text.SimpleDateFormat;
import java.util.Date;

public class JsonUtils {

    public static String getJson(Object object){
            return  getJson(object,"yyyy-MM-dd HH:mm:ss");
    }

    public static String getJson(Object object,String format){
        ObjectMapper mapper = new ObjectMapper();
        //不使用时间戳的方式
        mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        mapper.setDateFormat(sdf);
        try {
            return mapper.writeValueAsString(object);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return null;
    }
}

2.需求

代码如下(示例):

package com.cjy.controller;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import lombok.Data;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import pojo.User;
import utils.JsonUtils;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Controller
public class controller {

    @ResponseBody//不经过视图解析器,直接返回一个字符串
    @RequestMapping("/t1")
    public String hello() throws JsonProcessingException {

        //jackson , objectMapper
        ObjectMapper mapper = new ObjectMapper();
        //创建一个对象
        User user = new User("迪卢克",10);
        String str=mapper.writeValueAsString(user);
        return str;
    }

    @ResponseBody//不经过视图解析器,直接返回一个字符串
    @RequestMapping("/t2")
    public String hello2() throws JsonProcessingException {

        //创建一个对象
        User user = new User("迪卢克",10);
        User user2 = new User("迪卢克2",10);
        User user3 = new User("迪卢克3",10);
        User user4 = new User("迪卢克4",10);
        User user5 = new User("迪卢克5",10);
        //创建一个集合
        List<User> list= new ArrayList<User>();
        list.add(user);
        list.add(user2);
        list.add(user3);
        list.add(user4);
        list.add(user5);

        return JsonUtils.getJson(list);
    }
    @ResponseBody//不经过视图解析器,直接返回一个字符串
    @RequestMapping("/t3")
    public String hello3() throws JsonProcessingException {

        Date date = new Date();
        return JsonUtils.getJson(date);
    }
}


总结

这里的两处都用到getjson方法而且返回都是json格式,那么可以对多参数进行复用,其中有一些固定参数可以直接写在少参数的方法里,经过中转最后全部是最后一个函数进行处理,前面只是起一个明面上的作用(引导)。

  • hello2是对字符进行json格式化返回
  • hello3是对时间格式先进行去除时间戳的处理后进行json格式化返回
上一篇:[ Swagger ] SpringMVC 整合 Swagger UI 开发后台接口动态管理


下一篇:Jackson说明