个人技术提升
斩天拔剑书
想要就去拿
展开
-
认识Quartz
定时任务框架,基于数据库的高可用方案。概念了解Job表示一个工作,要执行的具体内容。此接口中只有一个方法void execute(JobExecutionContext context)JobDetailJobDetail表示一个具体的可执行的调度程序,Job是这个可执行程调度程序所要执行的内容,另外JobDetail还包含了这个任务调度的方案和策略。Trigger代表一个调...原创 2020-01-14 11:26:39 · 557 阅读 · 0 评论 -
关于Shiro 权限标签
前端HTML中:导入标签库<%@taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>使用方式: <shiro:hasPermission name="setTrade:apr"> <button type="...原创 2020-01-13 18:09:48 · 433 阅读 · 0 评论 -
ResourceBundle读取配置文件与HttpClient结合使用
1 Controller.javatry { HttpClient client = new HttpClient(); HttpMethod method = new PostMethod(); String host = PropertiesUt...原创 2020-01-13 13:58:41 · 162 阅读 · 0 评论 -
Lombok的基本使用
以前的Java项目中,充斥着太多不友好的代码:POJO的getter/setter/toString;异常处理;I/O流的关闭操作等等,这些样板代码既没有技术含量,又影响着代码的美观,Lombok应运而生。任何技术的出现都是为了解决某一类问题,如果在此基础上再建立奇技淫巧,不如回归Java本身,应该保持合理使用而不滥用。Lombok的使用非常简单:1)引入相应的maven包...转载 2020-01-10 15:04:43 · 741 阅读 · 0 评论 -
XmlUtil--Obj2Xml与Xml2Json
coding:public class XmlUtil { public static final Logger log = LoggerFactory.getLogger(XmlUtil.class); /** * @param obj 传入的对象 * @return 返回对象转换xml字符串 */ public static S...原创 2020-01-10 11:31:09 · 454 阅读 · 0 评论 -
HTML each遍历展示并在js中获取值的方式
html:<div class="row"> <div class="col-sm-12"> <div class="form-group"> <div class="col-xs-12" th:each="FileInfo: ${FileInfoList}"> &...原创 2020-01-08 10:55:57 · 2871 阅读 · 0 评论 -
若依框架--上传下载(基于spring boot + bootstrap)
最近基于若依框架做了一套后台管理系统,使用到上传和下载功能,一起学习和分享下;上传功能前端:引入样式: <th:block th:include="include :: bootstrap-fileinput-css"/>然后div样式: <div class="row"> <div class=...原创 2019-12-13 10:47:29 · 14259 阅读 · 6 评论 -
Spring Boot +web service 服务端示例
Spring Boot的简单性快速创建SOAP Web服务目录1.技术堆栈2.项目结构3.创建Spring Boot项目4.创建SOAP域并生成Java代码5.创建SOAP WS端点6.添加配置Bean7.演示8.摘要1.技术栈JDK 1.8,Eclipse,Maven –开发环境 春季启动–基础应用程序框架 wsdl4j–用于为我们的服务发布WSDL SOA...翻译 2019-11-27 09:56:58 · 744 阅读 · 0 评论 -
Spring TaskExecutor
TaskExecutor抽象Spring 2.0 为执行器(Executor)处理引入了一个新的抽象层。Executor是Java 5的名词,用来表示线程池的概念。之所以用这个奇怪的名词,是因为实际上不能保证底层实现的确是一个池。实际上,很多情况下,executor只是单线程。Spring的抽象层帮助你把线程池引入到Java 1.3和1.4环境中,同时隐藏了 1.3, 1.4, 5, 和 Ja...转载 2019-11-20 14:18:10 · 508 阅读 · 0 评论 -
Spring整合Rabbitmq
发送者spring配置文件:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="htt...翻译 2019-11-20 10:57:21 · 186 阅读 · 0 评论 -
定时任务更新数据库---非常规思路
需求:设置定时任务,将数据库用户名全称按照固定规则更新用户简称(新增一列);因为在进行交易时,若并发量过大去处理会影响性能。思路:1. 使用do...while循环执行数据库查询,查询语句加limit限制为100条每次,循环更新每条记录,当查询的结束集不是100条时,认为是最后一次查询,退出while循环。2.常规方式在项目中做定时任务:@Scheduled(cron = "0/...原创 2019-11-19 18:06:26 · 2446 阅读 · 0 评论 -
定时任务下发通知并更新数据库记录
使用的技术栈:spring @Component注解@Autowired资源注入newFixedThreadPool固定大小的线程池ReentrantLock同步锁CountDownLatch倒计时器,是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。HTTP表单请求package com.zcy.job;import com.aliba...原创 2019-11-19 10:57:37 · 543 阅读 · 0 评论 -
分析线程池源码
为什么要用线程池? 降低系统资源消耗。 提高线程可控性。 如何创建使用线程池?JDK8提供了五种创建线程池的方法:1.创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。publicstaticExecutorServicenewFixedThreadPool(intnThreads){returnnewThreadPool...翻译 2019-11-19 10:13:36 · 238 阅读 · 2 评论 -
Java-Web获取客户端真实IP
先上自己的代码: private void recordIP(HttpServletRequest request) { final String ip = WebUtil.retrieveClientIp(request); WebUtil.setIp(ip); LOG.debug("Send request uri: {}, from IP...原创 2019-11-15 14:12:46 · 626 阅读 · 0 评论 -
fastjson反序列化方法JSON.parseObject(String str,Class<T> clazz)
fastjson这一工具包帮助我们进行java对象和json格式的字符串之间的相互转换。对象到字符串的过程,我们称之为序列化;反之,我们称为反序列化。现在我们就来谈谈fastjson提供的反序列化方法,本篇只讨论按照指定的字节码返回相应对象的的反序列化方法,该方法有多种重载形式,按照重叠构造的模式设计。常用的入口为:JSON.parseObject(String text, Class<...翻译 2019-11-15 09:57:52 · 12849 阅读 · 0 评论 -
常见工具类判断
1 判断list集合不能为空:CollectionUtils.isEmpty(list)list == null || list.isEmpty()2 金额格式转换并赋值:BigDecimal fenTyuan = new BigDecimal("100");transLogInfo.setTransFee(new BigDecimal(result.getString("me...原创 2019-11-13 14:51:32 · 316 阅读 · 0 评论 -
ThreadPoolExecutor线程池之submit方法
对于一个任务的执行有时我们不需要它返回结果,但是有我们需要它的返回执行结果。对于线程来讲,如果不需要它返回结果则实现Runnable,而如果需要执行结果的话则可以实现Callable。在线程池同样execute提供一个不需要返回结果的任务执行,而对于需要结果返回的则可调用其submit方法。 回顾ThreadPoolExecutor的继承关系。 在Executor接口中只定义...翻译 2019-11-14 10:18:06 · 3767 阅读 · 0 评论 -
技术提升策略01
1 学会看代码 调用别人代码使用2 复习,学习新的语言,博览群书3 做个人项目就是一个人从设计,到交互,到html, css,javascript,server,sql, 架构,和数据统计都能做。4 问答形式的问题多注意写问题或需求 可以整理自己的思维逻辑5 好的团队最好的方式就是 狼行千里吃肉,狗行千里吃屎 。最好的进步方式就是跟比自己强的人共事。...原创 2018-12-01 20:03:27 · 198 阅读 · 0 评论