自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (2)
  • 收藏
  • 关注

原创 枚举+策略模式

枚举+策略快速消除if else if

2023-03-01 11:23:50 215

原创 定时任务+内部类+线程池

需求:把每天的数据定时推送到第三方,数据量有点大,如果一个个推送数据,需要耗时非常久,所以采取线程池+内部类操作。1.首先先了解一下定时任务cron的写法。可以参考Cron在线编辑器https://cron.qqe2.com/Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域。Cron从左到右(用空格隔开):秒 分 小时 月份中的日期 月份 星期中的日期 年份 字段 允许值 允许的特殊字符 秒(Seconds) 0~59的整数 , - *.

2021-01-05 23:39:55 318

原创 项目中使用策略模式+工厂模式实现导入导出

因为,最近在做excle的导入导出,发现有一个模块地下有14个需要导入导出的类,思来想去用策略+简单工厂模式去除if else if ....,是该模块能更好的维护。带着这样的想法,便在度娘搜了下策略+工厂模式的实现,最后参考了这位老哥的https://www.cnblogs.com/huangqingshi/p/10344265.html文章,先附上代码:1.定义一个导入导出的接口:public interface ExcelOperationStrategy { void imp

2020-11-25 23:40:53 975

原创 前端正则表达式校验邮箱,电话,身份证等

//邮箱var mail = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;//手机var phone = /^1[23456789]\d{9}$/;//固定电话var gphone = /^([0-9]{3,4}-)?[0-9]{7,8}$/;//定位后背景色var bgclr = "#e0f2be";//输入内容为小数位不超过2位的数值 ...

2020-11-20 09:56:56 1192

原创 前端layui通用工具

/** js数字相加* */function add(a, b) { return (Number(a) + Number(b)).toFixed(2);}/** * 编码(encodeURI),防止中文乱码 * @param val * @returns {string} */function encode(val) { return encodeURI(val);}/** * 解码 * @param val * @returns {string}.

2020-11-20 09:52:50 770

原创 前端校验form表单是否发生改变

前端效验form表单是否发生改变,如果没改变直接前端提示/** * 使用 json工具实现对象的深拷贝 * @param obj 提供覆盖属性的对象 */var deepClone1 = function(obj){ var _obj = JSON.stringify(obj); return JSON.parse(_obj);}/** * 使用递归实现对象深拷贝 * @param obj * @returns {Array} */var deepClone2 .

2020-11-12 11:40:26 2373

原创 oracle实现批量插入

最近项目上需要批量插入数据到oracle当中,这里总结三个方法:一.带自增id的形式,注意这边是没有values <!--批量新增--> <insert id="insertBatch" parameterType="java.util.List"> insert into TEST (ID,NAME,AGE,ADDRESS) select SEQ_TEST_ID.nextval id,a.* from (.

2020-11-09 22:17:33 2861

原创 Collections.addAll() 与 ArrayList.addAll()性能比较

1.Collections.addAll() 与 ArrayList.addAll()都是将所有指定的元素添加到指定的集合中;但是两个的效率谁更高呢?通过查看Collections.addAll() 源码有这样的一段话:The behavior of this convenience method is identical to that of<tt>c.addAll(Arrays.asList(elements))</tt>, but this method is li

2020-10-29 10:02:01 1215

原创 调用第三方接口,http的post请求入参格式为json

1.需求:要调用第三方接口的放回数据,入参为json格式,其中最重要的每个接口都需要t第三方传过来token,但是token 的过期时间是十分钟。为了防止一直请求,把token存到缓存(1)存到session (2)存到redis 。根据项目需要,这里采用的是存session。如果有调用的,去判断session有没有值,并且是否已经过了9分钟,如果是重新获取。public static String getToken(HttpServletRequest request, HttpServletR

2020-10-21 12:44:42 3459

原创 多线程结合线程池方式对文件批量下载到本地和压缩文件到浏览器

1.批量下载到本地:首先先了解Executorsc创建的4中线程池的使用:1)newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。2)newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。 3)newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。4)newSingleThreadExecutor 创建一个单线程化的线.

2020-10-21 10:28:16 798 1

原创 AOP+自定义注解+反射实现操作日志修改前数据和修改后数据

AOP+自定义注解+反射实现操作日志修改前数据和修改后数据1.自定义注解2. 进行aop切面@Aspect@Componentpublic class LogAspect { private Logger logger = LoggerFactory.getLogger(LogAspect.class); @Autowired private LogService logService; @Pointcut(value = "@annotation.

2020-10-10 14:13:36 4129 8

原创 layui下拉多选

1.首先要选引入formSelects-v4.css,formSelects-v4.js文件获取资源:https://github.com/hnzzmsf/layui-formSelects2.在select添加xm-select3.通过编码表获取它他的值,然后遍历封装成json形式效果如下:...

2019-10-15 15:53:49 565

原创 sso,获取request中取得前端传递过来的数据

formdata请求方式 /** * 用户登入 */ @RequestMapping(value = "/tbUserlogin", method = RequestMethod.POST) public String tbUserlogin(HttpServletRequest request) { HttpResult resu...

2019-10-15 15:38:29 507

Swing窗体的经典步骤

Swing窗体的经典步骤,1.基本规范 1)定义一个Start入口类,只有入口方法main(),里面写最开始的代码; 2)一个窗体一个类,所有的窗体类名都以Frm结尾; 3)显示窗体: //实体化窗体 LoginFrm loginFrm = new LoginFrm(); //窗体对象的setVisiable(true)方法显示窗体 loginFrm.setVisiable(true);

2018-03-15

Android 实验5

适用于张荣主编的Android开发与应用

2017-05-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除