
Java基础
文章平均质量分 68
Leon04095
平凡与辉煌最大的区别是执行力
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
海量数据下如何使用多线程的导出 Excel
前言公司项目最近有一个需要:报表导出。整个系统下来,起码超过一百张报表需要导出。这个时候如何优雅的实现报表导出,释放生产力就显得很重要了。下面主要给大家分享一下该工具类的使用方法与实现思路。实现的功能点对于每个报表都相同的操作,我们很自然的会抽离出来,这个很简单。而最重要的是:如何把那些每个报表不相同的操作进行良好的封装,尽可能的提高复用性;针对以上的原则,主要实现了一下关键功能点:...转载 2019-10-17 10:58:47 · 2163 阅读 · 0 评论 -
各种字符转换工具类
package com.isoftstone.common.utils;import java.io.UnsupportedEncodingException;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.math.BigDecimal;imp...原创 2019-03-07 17:05:46 · 782 阅读 · 0 评论 -
AES加解密工具类
import java.util.Base64;import javax.crypto.Cipher;import javax.crypto.spec.IvParameterSpec;import javax.crypto.spec.SecretKeySpec;import org.slf4j.Logger;import org.slf4j.LoggerFactory;impo...原创 2019-03-07 17:10:01 · 309 阅读 · 0 评论 -
signId和signKey生成及各种加密方式
自定义生成过程(getMd5SignMsg方法进行数据签名校验):对字符串加密import java.io.UnsupportedEncodingException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;public class HashEncrypt ...原创 2019-03-07 17:28:13 · 10673 阅读 · 0 评论 -
邮件通知工具类
工作中很难避免会有一些需要邮件通知的情况,网络上也有很多邮件模板和工具类,在此给出一个工具类供参考前面一篇文章重新封装了工具给出更好的适应项目需要但为提供原始工具类作参考这里给出下面引入架包工具类package com.leon.isoftstoneweb.commen.utils.email;import java.util.Date;import java....原创 2018-06-22 11:11:38 · 1014 阅读 · 0 评论 -
Springboot异常信息统一处理
前景描述: 最近在做项目时发现后台程序的异常抛到前端页面上报出一大段sql异常,因此考虑需要对异常进行全局统一处理,并将日志进行分类入库以及记录接口请求的日志信息等,记录日志信息在之前的文章已经有记录了这里不再重复有需要的请移步到Spring Boot 使用AOP切面实现后台日志管理模块。因为项目是基于Springboot做的前后端分离的项目,需要结合项目本身的一些特殊需求做些许改造。在网...原创 2018-09-21 15:25:46 · 6513 阅读 · 2 评论 -
Spring Boot 使用AOP切面实现后台日志管理模块
设计原则和思路:元注解方式结合AOP,灵活记录操作日志 能够记录详细错误日志为运维提供支持 日志记录尽可能减少性能影响1.定义日志记录元注解2.定义用于记录日志的实体类import java.io.Serializable;import com.leon.common.util.StringUtils;import com.fasterxml.jackson.ann...原创 2018-06-12 12:06:43 · 23128 阅读 · 32 评论 -
Spring Boot使用多线程并发执行定时任务
工程代码示例 : Spring Boot集成持久化Quartz定时任务管理和界面展示工程地址 :https://github.com/tjfy1992/SpringBootQuartz运行方法Spring Boot工程已经集成了服务器。右键点击DemoApplication.java -> Run As -> Java Application即可运行工程。默认端口为...原创 2018-10-23 16:06:15 · 27987 阅读 · 0 评论 -
使用Jenkins实现自动化部署
Jenkins简介Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作。简单点来讲就是配置好Jenkins以后可以一键发布项目,包括从git master分支拉取最新的代码,然后打包,然后上传到远程Linux服务器发布等一系列步骤它都可以帮你一键完成。这无疑可以省去很多程序员重复性繁琐的操作。特别是对于现在的spring cloud微服务来说,一个项目由多个小...转载 2019-03-07 16:59:04 · 901 阅读 · 0 评论 -
json转换工具类
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.URL;import java.util.ArrayList;import java.util.HashMap;imp...原创 2019-03-07 16:56:18 · 701 阅读 · 0 评论 -
HttpClient工具类(包含请求头设置及请求示例)
import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.EOFException;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.O...原创 2019-03-07 11:25:43 · 16210 阅读 · 0 评论 -
使用EasyPoi进行导入导出Excel(含多sheet导入导出操作)
本文算是对上篇使用EasyPoi根据模板导出Excel或word文档 的补充吧主要是直接进行导入导出,下面给出一个补充的工具类吧/***Excle 文件导入导出Util(easypoi)* @ClassName:EasyPoiUtil* @author leon* @createDate 2018年11月29日 下午15:25:27* @version v1.0...原创 2018-12-05 11:31:04 · 19657 阅读 · 8 评论 -
线程池的工作原理与源码解读及各常用线程池的执行流程图
上次给大家介绍了 Spring Boot 使用AOP切面实现后台日志管理模块其中使用到了线程池的内容下面给大家介绍下线程池的工作原理与源码解读及各常用线程池的执行流程图有时候花了大把时间去看一些东西却看不懂,是很 “ 蓝瘦 ” 的,花时间也是投资。本文适合:曾了解过线程池却一直模模糊糊的人 了解得差不多却对某些点依然疑惑的 随着cpu核数越来越多,不可避免的利用多线程技术以...原创 2018-12-24 11:10:05 · 15883 阅读 · 8 评论 -
maven创建父子工程、聚合工程及问题解决
springboot创建父子工程、聚合工程开发工具:IntellJ IDEA 2017springboot创建父子工程、聚合工程及搭建框架过程中遇到的问题解决项目名称wyait父工程【父】:wyait-parent(用于统一依赖版本管理) wyait通用工程【子】:wyait-common(统一保存通用工具类) wyait-web工程【子】:wyait-web(聚合工程)项...转载 2018-12-25 11:24:32 · 3060 阅读 · 0 评论 -
List转数组与数组转list
1. List集合转换成数组采用集合的toArray()方法直接把List集合转换成数组, 这里需要注意,不能这样写: String[] array = (String[]) mlist.toArray(); 这样写的话,编译运行时会报类型无法转换java.lang.ClassCastException的错误,这样写看起来没有问题,因为java中的强制类型转换是针对单个对象才有效果的,而...原创 2019-01-25 09:31:56 · 702 阅读 · 0 评论 -
AES加密和解密工具类
import java.util.Base64;import javax.crypto.Cipher;import javax.crypto.spec.IvParameterSpec;import javax.crypto.spec.SecretKeySpec;import org.slf4j.Logger;import org.slf4j.LoggerFactory;impo...原创 2019-02-13 17:58:23 · 1109 阅读 · 0 评论 -
WebUtils工具类获取Session
import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.springframework.web.context.request.RequestContextHolde...原创 2019-03-06 18:19:30 · 1537 阅读 · 0 评论 -
Java面试题总结
最近正值春招,收集了下平时遇到的 Java 技术问题或周围朋友见过的面试题,经过不断筛选,终于凝练成一套实用的小题库。想用它来挖掘我在 Java 技术栈中的技术盲点,然后修复和完善它,以此来提高自己的技术水平。我总结的这 200+ 道几乎都是「必考题」,都能看懂的话,如果去面试就十拿九稳了。刚开始的时候我还觉得这么做是不是帮人「作弊」的嫌疑,最后我想通了,这是一件值得去做的事儿。...原创 2019-04-28 23:18:06 · 997 阅读 · 0 评论 -
使用EasyPoi根据模板导出Excel或word文档
接着上篇文章Java根据模板导出Excel并生成多个Sheet简单介绍下EasyPoi的使用,直接上代码吧首先当然是先引入jar包了,看下图其次,还是贴代码吧看实例,下面是根据模板导出的工具类,包含Excel和word/*** 导出Excel或Word文件* @ClassName:ExportExcelOrWord* @author leon* @create...原创 2018-12-05 11:09:15 · 17431 阅读 · 2 评论 -
Spring IOC与AOP实现原理
IOC(Inversion of Control) (1). IOC(Inversion of Control)是指容器控制程序对象之间的关系,而不是传统实现中,由程序代码直接操控。控制权由应用代码中转到了外部容器,控制权的转移是所谓反转。 对于Spring而言,就是由Spring来控制对象的生命周期和对象之间的关系;IOC还有另外一个名字——“依赖注入(Dependency Injec...转载 2019-04-21 00:57:43 · 1351 阅读 · 0 评论 -
Spring常用注解
SpringMVC部分@EnableWebMvc 在配置类中开启Web MVC的配置支持,如一些ViewResolver或者MessageConverter等,若无此句,重写WebMvcConfigurerAdapter方法(用于对SpringMVC的配置)。@Controller 声明该类为SpringMVC中的Controller@RequestMapping 用于映射Web请...转载 2019-04-21 16:49:53 · 235 阅读 · 0 评论 -
SQL优化之如何将SQL执行效率提高了10000000倍!
场景我用的数据库是mysql5.6,下面简单的介绍下场景课程表:createtableCourse( c_idintPRIMARYKEY, namevarchar(10))数据100条学生表:createtableStudent( idintPRIMARYKEY, namevarchar(10))...转载 2019-06-20 10:22:38 · 815 阅读 · 1 评论 -
Activiti6.0开发探索与总结
前言年初要做一个运维自动化平台,需要用到流程引擎,本来打算项目用golang写的,但是golang的流程引擎功能太简单实在是用不来,最后还是选型java + activiti。到activiti官网一看,嘿出7.0了结果文档是刚写的还不全,我们java还是8的,7.0是匹配的java11,最终是问题太多只好放弃用activiti6.0了。摸石头过河虽然网上教程有不少,不过要真正跑...原创 2019-06-26 10:46:15 · 1999 阅读 · 0 评论 -
OpenOffice实现文档转PDF加水印
OpenOffice实现文件转Pdf加水印(支持自定义添加水印、页眉、页脚)最近项目需要实现下载Office文档时自动转成PDF文档,以下代码支持2003及2007版的Word,PPT,Excel转换,并支持自定义添加水印、页眉、页脚实现需要事先安装最新版 OpenOffice 下载地址:http://www.openoffice.org/JodConverter 下载地址:...原创 2019-06-24 16:34:58 · 3090 阅读 · 2 评论 -
Arthas--阿里开源 java 诊断工具
Arthas 是 阿里巴巴最近开源出来的一个针对 java 的工具,主要是针对 java 的问题进行诊断!一、概述 这个工具可以协助你做下面这些事情:这个类是从哪个 jar 包加载而来的? 为什么会报各种类相关的 Exception? 线上遇到问题无法debug 好蛋疼,难道只能反复通过增加 System.out 或通过加日志再重新发布吗? 线上的代码为什么没有执行到这里...原创 2019-06-30 22:36:45 · 600 阅读 · 0 评论 -
详细讲解MySQL索引与联合索引
背景:为了提高数据库效率,建索引是家常便饭;那么当查询条件为2个及以上时,我们是创建多个单列索引还是创建一个联合索引好呢?他们之间的区别是什么?哪个效率高呢?我在这里详细测试分析下。一、联合索引测试注:Mysql版本为 5.7.20创建测试表(表记录数为63188):CREATE TABLE `t_mobilesms_11` ( `id` bigint(20) NOT NU...转载 2019-07-25 15:39:32 · 1536 阅读 · 3 评论 -
MySQL索引设置以及查询效率优化
MySQL索引原理以及查询优化:https://www.cnblogs.com/bypp/p/7755307.html查看MySQL的当前存储引擎及命令介绍:https://www.cnblogs.com/zhming26/p/6322353.html查看当前MySQL存储引擎: mysql> show engines;索引设置:#1 索引种类:1. Fu...转载 2019-07-22 17:39:48 · 738 阅读 · 0 评论 -
微信聊天机器人(推送天气早报、睡前故事、精美图片分享)
福利时间,福利时间,福利时间 如果你还在为不知道怎么撩妹而烦恼,不知道怎么勾搭小仙女而困惑,又或者不知道怎么讨女朋友欢心而长吁短叹。 那么不要犹豫徘徊,往下看。接下来我会分享怎么使用 Python 实现微信自动聊天,微信每日天气早报、睡前故事及精美图片推送。 学会之后,迎娶白富美,走上人生巅峰就指日可待啦。(✪ω✪) 不信咱先看看效果展示: (皮皮是我家猫的名字...转载 2019-05-29 17:44:06 · 2443 阅读 · 0 评论 -
Java BigDecimal 精确计算详解
1.引言 float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。但是,商业计算往往要求结果精确,这时候BigDecimal就派上大用场啦。先看下面代码 public static void main(String...转载 2019-06-05 11:58:10 · 6986 阅读 · 3 评论 -
常用设计模式
Num1:单例模式基本概念:保证一个类仅有一个实例,并提供一个访问它的全局访问点。常见写法:懒汉式public class Singleton { /* 持有私有静态实例,防止被引用,此处赋值为null,目的是实现延迟加载 */ private static Singleton instance = null; /* 私有构造方法,防止被...转载 2019-04-21 17:50:30 · 207 阅读 · 0 评论 -
JAVA常用API与详解
一、JAVA常用APIjava.lang.Math提供sin, cos, tan, exp, log, log10 等类方法,PI和E等类字段java.lang.String(StringBuilder线程不安全,StringBuffer线程安全)java.util.Scannerforeach循环for(variable : collection) sta...转载 2019-04-16 23:16:36 · 411 阅读 · 0 评论 -
Java常用API总结,面试与详解
目录:一、java.lang.Object类【★】类层次结构的根类,所有类都直接或者间接的继承自该类。构造方法:public Object()成员方法:1) public int hashCode()返回该对象的哈希码值2) public final Class getClass()返回此对象的运行时类,即字节码文件对象3)public String ...原创 2019-04-16 23:19:06 · 3036 阅读 · 0 评论 -
Java常用集合总结与面试
上篇写到 Java常用API总结,面试与详解,这篇看下Java常用集合一、java中集合了类的关系图【简化版】注:虚线矩形表示接口实线矩形表示具体实现类实线矩形加粗表示具体实现类使用频率高,作为重点掌握集合是存储多个元素的容器,但是,由于数据结构不同,java就提供了多种集合类。而这多种集合类有共性的功能,所以,通过不断的向上抽取,最终形成了集合体系结构。...原创 2019-04-16 23:27:18 · 430 阅读 · 0 评论 -
JAVA异常处理与IO流
一、异常引言程序出现的不正常的情况。异常就是Java程序在运行过程中出现的错误。问题也是现实生活中一个具体事物,也可以通过java的类的形式进行描述,并封装成对象。其实异常就是Java对不正常情况进行描述后的对象体现。二、异常继承体系图解三、异常的体系java.lang.Throwable类|--Error严重问题,我们不处理。要改正代码。通常...转载 2019-04-16 23:30:41 · 843 阅读 · 0 评论 -
设计模式之里氏替换原则
引入里氏替换原则(LiskovSubstitution Principle,LSP)的目的就是为了解决继承中父子类之间产生的强耦合性。2.1 爱恨纠葛的父子关系继承在面向对象的语言中,继承是必不可少的、非常优秀的语言机制继承的优点● 代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性;● 提高代码的重用性;● 子类可以形似父类,但又异于...转载 2019-04-16 23:35:25 · 248 阅读 · 0 评论 -
Mybatis之choose (when, otherwise)标签
choose (when, otherwise)标签有时候我们并不想应用所有的条件,而只是想从多个选项中选择一个。而使用if标签时,只要test中的表达式为 true,就会执行 if 标签中的条件。MyBatis 提供了 choose 元素。if标签是与(and)的关系,而 choose 是或(or)的关系。choose标签是按顺序判断其内部when标签中的test条件出否成立,如果有一个...原创 2019-06-05 11:52:31 · 12054 阅读 · 0 评论 -
Java基础积累
ThreadLocal变量什么是ThreadLocal变量?ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。(1). 通过ThreadLocal创建的副本是存储在每个线程自己的threadLocals中的;(2). 为何thre...原创 2019-04-21 01:05:12 · 213 阅读 · 0 评论 -
Spring3注解(@Scheduled)创建计划任务
Spring3注解(@Scheduled)创建计划任务原创 2017-04-13 11:50:27 · 536 阅读 · 0 评论 -
SpringMVC+MyBatis 返回时间格式转换解决方案
Mybatis中可以使用 DATE_FORMAT(datetime,'%Y-%m-%d %H:%i:%s')函数状态当然方法一:使用@JsonFormat注解,将它配置到Date类型的get方法上,jackson就会按照配置的格式转换日期类型@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") //@JsonFormat(pattern="yyyy-MM...原创 2017-11-01 20:07:02 · 22592 阅读 · 1 评论 -
MyBatis基本查询、条件查询、查询排序
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">resultMap="linkType">SELECT * FROM OD_LINK_TYPEWHERE LINK_URI = #{linkUri}resultType原创 2017-11-01 20:20:39 · 2566 阅读 · 0 评论