![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
半湖思絮
IT
展开
-
spring事务相关
spring, 事务, 回滚原创 2022-07-26 10:57:42 · 83 阅读 · 0 评论 -
java+js实现rsa+aes加密解密demo
参考链接文章看完就懂了,我稍做改动,就是ras加密解密使用动态生成的公、私钥总结起来就是说:rsa是非对称加密,通过公钥加密,私钥解密aes是对称加密,使用同一密钥进行加密和解密原理就是:// 客户端1.客户端随机产生16位的keyString key = AESUtil.generateKey();2.客户端对敏感信息加密String password = “123456”;String encryptPwd = AESUtil.encryptData(key, password);原创 2021-03-24 20:03:28 · 608 阅读 · 0 评论 -
SocketJS学习总结
关于WebSocket的介绍和相关API,网上有很多文档,感觉下面这个说得比较细:WebSocket介绍WebSocket APISockJS FallbackWebSocket STOMP这个是SpringBoot整合 WebSocket的文档,前端用的SocketJS/Stomp。后端用的是Spring所支持的...原创 2019-12-30 09:31:24 · 9851 阅读 · 1 评论 -
java 大数据比较两个list集合的差值
有这么个场景,每天需要定时任务插入增量数据。如果通过接口获取的直接根据时间过滤,那么就能直接就可以插入库中。但有时获取到的并不是增量数据,比如微信公众号获取关注者列表时,获取到的是全量数据,这样每天就得将全量数据与库中进行比较,只有库中不存在数据才进行插入。这就有了两个list比较差值的问题。以前在处理该问题时,会遍历全量中的list,然后判断每个对象是否已在数中存在,如果不存在就放到一个临时...原创 2018-12-24 15:47:26 · 12131 阅读 · 1 评论 -
service手动回滚
如果对spring配置了service层事物的管理。在一些业务中需要回滚,正常来说抛出一个运行时异常即可throw new RuntimeException();只是这样的话代码就结束了,如果要返回给用户错误信息,不太方便,这时可以添加如下代码,在catch中手动回滚TransactionAspectSupport.currentTransactionStatus().setR...原创 2018-11-07 14:57:18 · 2990 阅读 · 1 评论 -
redis缓存数据
缓存数据的步骤查询缓存,如果没有数据,则查询数据库 查询数据库,如果数据不为空,将结果写入缓存缓存数据容易造成如下问题:缓存穿透、缓存击穿、缓存失效缓存穿透什么叫缓存穿透?一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去后端系统查找(比如DB)。如果key对应的value是一定不存在的,并且对该key并发请求量很大,就会对后端系统造成很大的压力...原创 2018-09-01 18:14:10 · 523 阅读 · 0 评论 -
Java去掉Html标签的方法
content = content.replaceAll("\\&[a-zA-Z]{1,10};", "").replaceAll("<[^>]*>", "").replaceAll("[(/>)<]", "");原创 2018-08-01 16:25:03 · 4975 阅读 · 1 评论 -
设计模式学习笔记:一、代理模式(动态代理实现)
以数据库查询为例:1.声明接口:执行数据库操作public interface SqlSession { public int save(String sql)throws Exception;}2.接口实现类:具体的主要业务,sql执行的实现public class DeptMapper implements SqlSession { PreparedSt...原创 2018-07-28 19:48:39 · 255 阅读 · 0 评论 -
微信公众号关注渠道来源
获取公众号用户的基本信息,看到接口文档给的用户渠道来源类型,明显不正确,而从网上找的类型,都是截图,导致在json转对象时会出错,在这里更正一下。至少我调用几十万的公众号返回的信息的渠道来源,没有超出下面的范围public enum SubscribeSceneType { //返回用户关注的渠道来源, ADD_SCENE_SEARCH, //公众号搜索 ADD_SCENE_A...原创 2018-12-24 16:32:06 · 7540 阅读 · 0 评论 -
jdk其它版本下载链接
https://www.oracle.com/technetwork/cn/java/archive-139210-zhs.html原创 2019-03-10 17:39:14 · 1413 阅读 · 0 评论 -
idea中学习辅助插件IDE Features Trainer的快捷键
刚学的idea,因为和eclipse有很多冲突。至于快捷键的学习,有一堆,但就像工具书一样,不太连贯。github上的文档:https://github.com/judasn/IntelliJ-IDEA-Tutorial/blob/master/keymap-introduce.md我整理了一份上面说要必备的快捷键:https://github.com/dulinanaaa/Inte...原创 2019-11-15 11:41:15 · 7449 阅读 · 0 评论 -
Maven [1,0] 错误: 非法字符: \65279 [1,9] 错误: 需要class, interface或enum
Maven在构建项目的时候,报非法字符的错误,如下:这是因为此文件的编码格式有问题,改成utf-8无bom格式的即可。可以用notepad++修改但是改完之后,可能因为包的引用,使引用该类的文件报错,而报错的包可能并不是该包,而此包也存在,就是导入不进来这时只需要update下项目即可...原创 2019-03-18 14:02:52 · 373 阅读 · 0 评论 -
利用maven-war-plugin实现不同环境下的配置文件
我这是一个标准的maven的目录结构,配置文件都在src/main/resources根目录下。因为要改成多环境的配置,所以只有properties的文件改变了(公共配置可以原地不动)1.将配置文件放到不同的文件夹下2.创建2个不同的profile,一个是生产环境配置(prod),一个是开发环境配置(dev),分别与步骤1中的两个文件夹名对应一致<profiles>...原创 2019-03-18 17:38:26 · 1193 阅读 · 0 评论 -
String/InputStream/File之间的相互转换
InputStrem与String之间转换String转InputStream/** * 将str转换为inputStream * @param str * @return */public static InputStream str2InputStream(String str) { ByteArrayInputStream is = new ByteArrayInputStr...原创 2019-04-10 13:54:17 · 66109 阅读 · 6 评论 -
静态代码块、构造代码块、构造方法、静态方法等(父子类)执行顺序
验证结果:静态代码块>构造代码块>构造函数>静态方法>普通代码块验证代码如下public class Son extends Father { private String name; public Son(String name) { super(name); this.name = name; Sy...原创 2019-04-10 18:06:10 · 693 阅读 · 0 评论 -
对synchronized(this)的一些理解
转自:https://www.cnblogs.com/firstdream/p/8334149.html转载 2019-07-13 21:17:37 · 175 阅读 · 0 评论 -
java8 stream 集合去重
/** * * Description: JDK1.8的Stream操作工具类 * @author linan.du * @date 2019年7月18日 * @version 1.0 */public class StreamUtil { /** * * Description: stream去重时,调用它可免除 泛型重写equals和hashcode方法 ...原创 2019-08-14 09:21:04 · 2004 阅读 · 0 评论 -
设计模式学习笔记:一、代理模式(动态代理步骤+举例)
代理模式实现步骤: 1.声明接口:注册需要被监听行为名称 2.接口实现类: 扮演被监控的类,负责被监听方法实现细节 3.InvocationHanler接口实现类: 1.次要业务/增强业务 2.将次要业务与被监听方...原创 2018-07-28 19:36:34 · 187 阅读 · 0 评论 -
线程池的单例构造与使用
1.做一个线程池的工具类(最简单的)package cn.xdf.wlyy.thread;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.TimeUnit;public class Thre...原创 2018-05-29 14:47:05 · 1503 阅读 · 0 评论 -
java下载url图片链接
1.从之前写的一篇中改写了代码,从远程的url链接中下载图片,并对各种浏览器的中文文件名进行展示/** * 根据url路径下载图片 * @param filename 处理下载时显示设置好的中文名 eg:张三的照片.jpg * @param path 要保存在本地的临时路径(下载之后会将保存在此处的图片删除)eg: d:/image * @param url 图片链接 eg: http原创 2017-08-10 10:08:36 · 447 阅读 · 0 评论 -
wechat4j对于不需要处理的消息类型的处理
wechat4j对微信公众平台的api文档时行了一系列的封装(Java SDK),只需调用方法就能实现对其方法的使用,项目地址为:wechat4j项目地址但是它将所有的类型都进行了重写,而对于不需要处理的消息类型,都有进行回复。而目前项目中只用到了自定义菜单的消息类型,而对于其它类型,wechat4j默认使用了文本类型进行回复,不符合我的需求。而微信官方规定,如果不需要处理,那么可以回复空串(原创 2017-04-05 13:58:07 · 885 阅读 · 0 评论 -
读取excel文件.xls格式 转为html格式在页面中显示
使用poi的jar包,读取excel文件内容import java.io.File;import java.io.FileInputStream;import java.io.InputStream;import java.text.DecimalFormat;import java.util.HashMap;import java.util.Map;import o原创 2017-02-24 17:52:35 · 1437 阅读 · 0 评论 -
Spark MLlib java TF-IDF计算 (spark 1.5.2)
import java.util.Arrays;import java.util.List;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.api.java.JavaSparkContext;import org.apache.spark原创 2017-02-08 14:28:55 · 1938 阅读 · 0 评论 -
Spark关于Java的RDD操作
在之前的文章中Spark的demo对RDD的简单操作,通过学习《Spark快速大数据分析》,记录一下对RDD的详细操作1.转化操作map我们可以使用map()来做各种各样的事情:可以把我们的URL集合中的每个URL对应的主机名提取出来,也可以简单到只对各个数字求平方值。map()的返回值类型不需要和输入类型一样。这样如果有一个字符串RDD原创 2016-12-27 17:14:58 · 1082 阅读 · 0 评论 -
Spark在Eclipse运行的demo
刚接触Spark,很多还都不是太懂,查看了别人写的中文API:Spark中文文档 根据里面的参数写了一个最简单的调用,如果maven已配好的话,可以直接运行 org.apache.spark spark-core_2.10 1.5.2 org.apache.spark spark-sql_2.10 1.5.2 org.apache.hadoop hadoop-cli原创 2016-12-26 11:49:22 · 1052 阅读 · 0 评论 -
JFinal定时任务的配置
最近在使用JFinal的框架,之前使用spring框架,直接在配置文件配置下就可以了。所以从网上找了相关例子,整理了一下1.建一个配置文件job.properties,用作定时配置job=com.demo.job.JobAcron=* * 2 * * ?enable=true上面是一个定时任务,如果需要多个,从后面展示的定时读取可知,这么配置一下就可以了bjob=com.de原创 2016-12-02 14:30:41 · 8525 阅读 · 7 评论 -
获取开始及结束日期间隔月份或年份列表
/** * 获取开始及结束日期间隔月份列表 * start格式 "2015-01-01" * end格式 "2016-01-01" * @param start * @param end * @return */ public static List getMonths(String start, String end) { List dateList = new原创 2016-11-01 16:16:47 · 2295 阅读 · 0 评论 -
springmvc接收ajax的json格式数据
1.jsp封装数据,示例中是list数组var saveList = new Array();$.each($("#hasList tr"), function(i, n){ var a = $(n).find("td:first a"), id = $(a).attr("data-id"), name = $(a).text(); saveList.push({id:id,na原创 2017-07-28 17:52:20 · 576 阅读 · 0 评论 -
解决提交表单时Xss攻击的问题
之前一直做内网系统,都是局域网,对安全问题一直考虑不周。有一天对自己线上的表单做了一个测试,将<script>alert("xxx")</script>作为表单选项提交,在后台回显时,可想而知,后台弹出了一个alert("xxx")的巨大的bug。-------------------------------------修改了Xss攻击时的问题,改成了一个过滤器...原创 2017-09-04 09:40:19 · 7825 阅读 · 5 评论 -
导入excel(xls格式, xlsx格式大部分都把类似HSSF替换成XSSF就行了,看api)
java的Excel导入原创 2017-10-12 13:26:16 · 711 阅读 · 0 评论 -
mybatis 使用criteria 查询xx and ( xx or xx)形式的sql
a and (b or c) <==> (a and b) or (a and c)UserExample userExample = new UserExample();String email = user.getEmail();String telephone = user.getTelephone();userExample.createCriteria().and...原创 2018-03-28 16:37:37 · 9484 阅读 · 0 评论 -
List集合去除复复元素记录
需求:数据库中存在导入记录,新导入的数据只导入数据库中不存在的,对于存在的,直接忽略。例如下面demo,List<String>telephoneList存放的是从数据库查询出来的不重复的电话号码,List<TrainPerson>trainPersonList存放的是即将要导入到数据库中的数据,由于trainPersonList中有的数据已存在数据库中(以电话号,tele...原创 2018-03-28 15:14:12 · 211 阅读 · 0 评论 -
java 生成js接口签名 页面调用JS-SDK
如果要使用微信公众平台的网页开发,首先要生成签名,其算法也在官方的wiki说明了,网上也有PHP版本,在这里写一下java的生成版本:1.因为保密需要,把关键参数隐去了,但签名与公众号接入差不多,只是参数个数变了,下面是参考代码package cn.xdf.wlyy.controller;import java.security.MessageDigest;import java.secur...原创 2018-03-05 15:42:46 · 2308 阅读 · 0 评论 -
java利用POI向Excel(xls)写入图片,并对图片引用超链接
java向Excel(xls)写入图片,并对图片引用超链接原创 2017-12-21 10:42:33 · 8048 阅读 · 1 评论 -
如何阅读Java源码 阅读java的真实体会
转自http://www.hulian.top/zixun/post/4771.html刚才在论坛不经意间,看到有关源码阅读的帖子。回想自己前几年,阅读源码那种兴奋和成就感(1),不禁又有一种激动。源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心。说到技术基础,我打个比方吧,如果你从来没有学过Java,或是任何一门编程语言如C++,一开始去啃《Core Java》,你转载 2017-11-16 09:33:57 · 364 阅读 · 0 评论 -
手工部署Java Web项目【阿里云教程】
使用linux部署java web环境链接地址如下:https://help.aliyun.com/document_detail/51376.html?spm=5176.doc52806.6.718.B7FOx8原创 2017-09-26 17:50:19 · 451 阅读 · 0 评论 -
KMP算法(java)
KMP算法是在字符串M中查找是否包含字符串N,存在返回字符串M匹配的字符首位置,将复杂度O(mn)降为O(m+n)要看对KMP算法的理解,请参考字符串匹配的KMP算法要看其中对匹配表的理解,请参考 KMP算法最浅显理解——一看就明白 下面是基于算法整理的Java代码:public class KMP { private static int[] getNext(Stri原创 2017-10-16 14:28:25 · 227 阅读 · 0 评论 -
ajax上传图片及跨域解决办法(未测试ie)
1.ajax上传图片 Document upload $(function () { $("#upload").click(function () { var formData = new FormData(); formData.append('file', $('#file')[0].files[0]); $.ajax({ u原创 2017-07-07 11:20:45 · 6993 阅读 · 0 评论 -
java通用格式下载,中文乱码解决
从网上看到了好多关于文件下载的问题,我之前也遇到过。比如在ff/chrome/360都好用,但在ie下乱码。或者中文转码后中文部门丢失等。今天整理下文件下载的问题,亲测ie,ff,chrome,360都能显示中文名,并且支持图片、office等通用文件的下载,下面附上代码import java.io.File;import java.io.FileInputStream;import j原创 2016-08-04 15:16:31 · 557 阅读 · 1 评论