软件开发工作总结

1.基本类

		//所需依赖
		<!-- start logs dependency -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.13.0</version>
        </dependency>

        <dependency>
            <groupId>com.lmax</groupId>
            <artifactId>disruptor</artifactId>
            <version>3.4.2</version>
        </dependency>
1.1BaseIO

import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;

import com.klsjnh.K;
import com.klsjnh.KC;

import java.io.Reader;
import java.io.Closeable;
import java.sql.ResultSet;
import java.io.BufferedReader;

public class BaseIO {
    private static Logger logger = LogManager.getLogger(BaseIO.class);

    protected static String processReader(String funcName, Reader reader) {
        StringBuilder stringBuilder = new StringBuilder();

        BufferedReader bufferedReader = null;
        try {
            bufferedReader = new BufferedReader(reader);

            String line;

            while ((line = bufferedReader.readLine()) != null) {
                stringBuilder.append(line).append(System.getProperty("line.separator"));
            }

            return stringBuilder.toString();
        } catch (Exception ex) {
            logger.error(String.format(KC.DEFAULT_EXCEPTION, funcName, ex.getMessage()));
        } finally {
            close(funcName, bufferedReader);
        }

        return "";
    }

    protected static void close(String funcName, Object o) {

        if (K.objectIsNull(o)) {
            return;
        } else if (o instanceof Closeable) {
            try {
                Closeable closeable = (Closeable) o;
                closeable.close();
            } catch (Exception ex) {
                logger.error(String.format(KC.DEFAULT_EXCEPTION, funcName, ex.getMessage()));
            }
        } else if (o instanceof ResultSet) {
            try {
                ResultSet closeable = (ResultSet) o;
                closeable.close();
            } catch (Exception ex) {
                logger.error(String.format(KC.DEFAULT_EXCEPTION, funcName, ex.getMessage()));
            }
        } else {
            logger.info(String.format("unknown instance %s ...", o.toString()));
        }
    }

}

1.2 K(转换格式)

import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;

import com.google.gson.*;

import java.io.Closeable;
import java.sql.ResultSet;
import java.util.*;

public class K {


    private static Logger logger = LogManager.getLogger(K.class);

    private static Gson g = new Gson();

    //=========================================================
    //                        String
    //=========================================================

    public static String svo(Object o) {
        if (o == null) {
            return "";
        }
        return String.valueOf(o);
    }

    public static String captureFirst(String s) {
        return s.substring(0, 1).toUpperCase() + s.substring(1);
    }

    //=========================================================
    //=========================================================

    //=========================================================
    //                        number
    //=========================================================

    public static int parseInt(Object o) {
        return parseInt(o, 0);
    }

    public static long parseLong(Object o) {
        String s = o.toString().trim();
        return s.matches("-?\\d+") ? Long.parseLong(s) : 0L;
    }

    public static int parseInt(Object o, int defaultValue) {
        if (o != null && !o.equals("")) {
            String s = o.toString().trim();
            return !s.matches("-?\\d+") ? defaultValue : Integer.parseInt(s);
        } else {
            return defaultValue;
        }
    }

    //=========================================================
    //=========================================================

    //=========================================================
    //                          map
    //=========================================================

    public static String getMapString(HashMap<String, Object> m, String key) {
        return m.containsKey(key) ? svo(m.get(key)) : "";
    }

    public static int getMapNumber(HashMap<String, Object> m, String key) {
        return m.containsKey(key) ? parseInt(m.get(key)) : 0;
    }

    //=========================================================
    //=========================================================

    //=========================================================
    //                         list
    //=========================================================

    public static HashMap<String, Object> getMapFromList(LinkedList<HashMap<String, Object>> dataList, String key, String value) {
        for (HashMap<String, Object> data : dataList) {
            if (data.containsKey("key")) {
                if (getMapString(data, key).equalsIgnoreCase(value)) {
                    return data;
                }
            }
        }
        return null;
    }

    //=========================================================
    //=========================================================

    //=========================================================
    //                        json
    //=========================================================

    public static JsonObject getJsonObject(String json) throws FrameException {
        checkObject(json, "json");
        return new JsonParser().parse(json).getAsJsonObject();
    }

    public static JsonArray getJsonArray(String json) throws FrameException {
        checkObject(json, "json");
        return new JsonParser().parse(json).getAsJsonArray();
    }

    public static <T> T jsonToObject(Class<T> cls, String json) {
        GsonBuilder builder = new GsonBuilder();
        builder.registerTypeAdapter(Date.class, (JsonDeserializer<Date>) (json1, typeOfT, context) -> new Date(json1.getAsJsonPrimitive().getAsLong()));
        Gson gson = builder.create();
        return gson.fromJson(json, cls);
    }

    public static String objectToJson(Object object) {
        return g.toJson(object);
    }

    //=========================================================
    //=========================================================

    //=========================================================
    //                        object
    //=========================================================

    public static boolean objectIsNull(Object o) {

        if (o == null) {
            return true;
        } else if (o instanceof String) {
            return ((String) o).isEmpty();
        } else if (o instanceof Map) {
            return ((Map) o).isEmpty();
        } else if (o instanceof Collection) {
            return ((Collection) o).isEmpty();
        } else if (o instanceof Closeable) {
            return o == null;
        } else if (o instanceof ResultSet) {
            return o == null;
        } else {
            logger.info(String.format("unknow object %s ...", o.getClass()));
        }

        return true;
    }

    public static boolean objectIsNotNull(Object o) {
        return !objectIsNull(o);
    }

    //=========================================================
    //=========================================================

    //=========================================================
    //                      check
    //=========================================================

    public static void checkObject(Object o, String name) throws FrameException {
        if (K.objectIsNull(o)) {
            throw new FrameException(KC.PARAM_CAN_NOT_NULL, String.format(KC.PARAM_CAN_NOT_NULL_MESSAGE, name));
        }
    }

    //=========================================================
    //=========================================================
}

1.3KC(常量)

public class KC {

    //system const

    public final static String LINE_SEPARATOR = System.getProperty("line.separator");
    public final static String FILE_SEPARATOR = System.getProperty("file.separator");
    public final static String OS = System.getProperty("os.name");

    //default

    public static final String DEFAULT_ENCODING = "utf-8";
    public static final int DEFAULT_HASH_MAP_SIZE = 16;

    public static final String DEFAULT_STATUS01 = "1";

    public static final String DEFAULT_EXCEPTION = "%s exception, maybe %s ...";

    public static final String BUSINESS_EXCEPTION = "60100";
    public static final String BUSINESS_EXCEPTION_MESSAGE = "%s business exception, maybe %s ...";

    public static final String PARAM_CAN_NOT_NULL = "60110";
    public static final String PARAM_CAN_NOT_NULL_MESSAGE = "param %s can't null ...";

    public static final String PARAM_EXISTS = "60120";
    public static final String PARAM_EXISTS_MESSAGE = "param %s is exists ...";
}

2.公共工具类

2.1HttpUtil(http工具类)

import com.klsjnh.K;
import com.klsjnh.KC;
import com.klsjnh.core.base.BaseIO;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class HttpUtil extends BaseIO {
    private static final Logger logger = LogManager.getLogger(HttpUtil.class);

    private static int TIME_OUT = 5000;

    public static String get(String url) {
        return executeGet(url, KC.DEFAULT_ENCODING);
    }

    public static String post(String url, String data) {
        return executePost(url, data, "", KC.DEFAULT_ENCODING);
    }

    public static String postWithForm(String url, String data) {
        return executePost(url, data, "form", KC.DEFAULT_ENCODING);
    }

    //=========================================================
    //                   private method
    //=========================================================

    private static String executeGet(String url, String encode) {
        String funcName = "execute get";

        try {
            K.checkObject(url, "url");

            HttpURLConnection httpConnection = getHttpConnection(url, "GET");

            assert httpConnection != null;
            httpConnection.setRequestProperty("Accept", "text/html,application/xhtml+xm…plication/xml;q=0.9,*/*;q=0.8");

            return getStream(httpConnection.getInputStream(), encode);
        } catch (Exception ex) {
            logger.error(String.format(KC.DEFAULT_EXCEPTION, funcName, ex.getMessage()));
        }

        return "";
    }

    private static String executePost(String url, String data, String method, String encode) {
        String funcName = "execute post";

        OutputStream outputStream = null;

        try {
            K.checkObject(funcName, "url");
            K.checkObject(funcName, "data");

            HttpURLConnection httpConnection = getHttpConnection(url, "POST");

            assert httpConnection != null;
            if ("form".equalsIgnoreCase(method)) {
                httpConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            } else {
                httpConnection.setRequestProperty("Content-Type", "application/json;");
            }

            httpConnection.setDoOutput(true);
            httpConnection.setDoInput(true);

            outputStream = httpConnection.getOutputStream();

            if (method.equalsIgnoreCase("form")) {
                outputStream.write(data.getBytes(encode));
            } else {
                outputStream.write(data.getBytes(encode));
            }

            return getStream(httpConnection.getInputStream(), encode);
        } catch (Exception ex) {
            logger.error(String.format(KC.DEFAULT_EXCEPTION, funcName, ex.getMessage()));
        } finally {
            close(funcName, outputStream);
        }

        return null;
    }

    private static String getStream(InputStream inputStream, String encode) {
        String funcName = "get stream";

        try {
            InputStreamReader reader = new InputStreamReader(inputStream, encode);
            return processReader(funcName, reader);
        } catch (Exception ex) {
            logger.error(String.format(KC.DEFAULT_EXCEPTION, funcName, ex.getMessage()));
        }

        return "";
    }

    private static HttpURLConnection getHttpConnection(String url, String method) {
        String funcName = "get http connection";

        try {
            URL Url = new URL(url);
            HttpURLConnection httpConnection = (HttpURLConnection) Url.openConnection();
            httpConnection.setConnectTimeout(TIME_OUT);
            httpConnection.setReadTimeout(TIME_OUT);
            httpConnection.setRequestProperty("Connection", "keep-alive");
            httpConnection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0");
            httpConnection.setRequestMethod(method);
            return httpConnection;
        } catch (Exception ex) {
            logger.error(String.format(KC.DEFAULT_EXCEPTION, funcName, ex.getMessage()));
        }

        return null;
    }

    //=========================================================
    //=========================================================
}

2.2 MD5工具类

import com.klsjnh.KC;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.security.MessageDigest;

public class MD5Util {

    private static final Logger logger = LogManager.getLogger(HttpUtil.class);

    /**
     * md5加密
     * @param content
     * @return
     */
    public static String encode(String content){
        String funcName = "encode";

        try{
            MessageDigest md5 = MessageDigest.getInstance("MD5");
            char[] charArray = content.toCharArray();
            byte[] byteArray = new byte[charArray.length];

            for (int i = 0; i < charArray.length; i++)
                byteArray[i] = (byte) charArray[i];

            byte[] md5Bytes = md5.digest(byteArray);
            StringBuffer hexValue = new StringBuffer();

            for (int i = 0; i < md5Bytes.length; i++){
                int val = ((int) md5Bytes[i]) & 0xff;
                if (val < 16)
                    hexValue.append("0");
                hexValue.append(Integer.toHexString(val));
            }

            return hexValue.toString();
        }catch (Exception ex){
            logger.error(String.format(KC.DEFAULT_EXCEPTION, funcName, ex.getMessage()));
        }

        return "";
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值