雷默
文章平均质量分 89
wus_shang
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
IntelliJ IDEA配置方法参数注释
原创 2018-02-08 10:34:39 · 4301 阅读 · 0 评论 -
Java中OSS存储使用
本篇文章希望你先看完官方的API了解一下OSS基本语法和概念再来应该比较容易懂。这里给出官方的OSS API:OSS API官方SDK:点击打开链接官方帮助文档:点击打开链接OSS GitHub地址:点击打开链接OSS java 依赖jar包地址:点击下载参考文章:http://blog.youkuaiyun.com/github_36086968/article/details/531132742018-0...原创 2018-02-08 10:23:12 · 16669 阅读 · 1 评论 -
使用AntiSamy拦截xss攻击
什么是Xss攻击XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是...转载 2018-02-08 10:22:11 · 1395 阅读 · 0 评论 -
使用Appscan进行安全测试
简介Appscan是IBM出品的一个安全测试软件,采用黑盒测试的方式,可以扫描常见的web应用安全漏洞。其工作原理,首先是根据起始页爬取站下所有可见的页面,同时测试常见的管理后台;获得所有页面之后利用SQL注入原理进行测试是否存在注入点以及跨站脚本攻击的可能;同时还会对cookie管理、会话周期等常见的web安全漏洞进行检测。AppScan功能十分齐全,支持登录功能并且拥有十分强大的报表。在扫描结...原创 2018-02-08 10:21:03 · 11766 阅读 · 1 评论 -
TestNG使用和安装
TestNG简介:TestNG是一个测试框架,其灵感来自JUnit和NUnit,但同时引入了一些新的功能,使其功能更强大,使用更方便。TestNG相较于Junit的优点:·可指定执行顺序, dependsOnMethods 属性来应对测试的依赖性问题。 ·参数化测试,TestNG 提供了开箱即用的类似特性。通过在 TestNG 的 XML 配置文件中放入参数化数据,就可以对不同的数据集重用同一个测...转载 2018-02-08 10:18:21 · 912 阅读 · 0 评论 -
logback的使用和logback.xml详解
更新记录2017-02-06 :1.需要更改的参数提取为变量,如果是SpringBoot项目,可以完全写在配置文件,可去看减轻茶的配置 ;2.定义控制台自定义颜色,Eclipse需要安装ANSI插件2017-12-28 :修改添加日志记录到数据库,去除1.2.3版本不兼容的保存日志文件的file标签 ,<File>${LOG_HOME}/info.duduerp.log</Fil...原创 2018-02-08 10:17:36 · 472 阅读 · 0 评论 -
Eclipse下SVN创建分支、合并分支
使用原则http://172.16.1.98:83/wordpress/2017/12/15/%E9%A1%B9%E7%9B%AE%E4%B8%AD%E4%BD%BF%E7%94%A8svn%E7%AE%A1%E7%90%86%E5%8E%9F%E5%88%99/开发工具Eclipse MARS1版本,以下Eclipse中指的是这个版本。一、切换分支合并根据目标不同分为2种:1、分支合并到主干:主...原创 2018-02-08 10:10:28 · 3590 阅读 · 0 评论 -
IDAE下SVN创建分支、合并分支
使用原则http://172.16.1.98:83/wordpress/2017/12/15/%E9%A1%B9%E7%9B%AE%E4%B8%AD%E4%BD%BF%E7%94%A8svn%E7%AE%A1%E7%90%86%E5%8E%9F%E5%88%99/开发工具IDEA 2017.2.6版本,以下IDEA中指的是这个版本。一、合并时的切换分支合并根据目标不同分为2种:1、分支合并到主干:...原创 2018-02-08 10:10:02 · 945 阅读 · 0 评论 -
ConcurrentModificationException异常出现的解决方案
问题ArrayList作为Java程序中最常被使用的集合类型,使用迭代方式遍历该集合,并删除其中的某些特定元素是一个很常见的操作场景。我们直接看来示例代码:public class TestForeach{public static void main(String args[]) {List list = new ArrayList();list.add("大锤");list.add(...原创 2018-02-08 10:09:17 · 202 阅读 · 0 评论 -
SpringMVC+ EasyUI使用filebox 上传
今天用RMS写减轻茶后台上传文件,发现不能上传,前面一直使用JFinal上传,找了半天一直报错,最后才发现是SpringMVC上传问题。做个记录。前端页面一般正常页面需要文件上传需要添加enctype="multipart/form-data"><form id="banner_save_dialog_form" method="post" enctype="multipart/for...原创 2018-02-08 10:23:37 · 2153 阅读 · 0 评论 -
前(AngluarJS)后(Java)端分离微信授权
简介这是第一次前后端分离编写项目,后端使用的Java语言,框架使用的是SpringBoot框架,前端使用框架AngularJs。最终的大致思路是1、前端请求正常接口,进入拦截器,后台从Cookie中没取到值,返回54000给前端。2、由前端页面发起授权跳转(跳转到微信官方的那个授权接口)。3、用户点击同意后,跳转后台接口接收code。4、后端通过code获取用户的access_token和o...原创 2018-02-08 10:24:58 · 563 阅读 · 1 评论 -
项目中使用SVN管理原则
一、为什么需要分支大多数产品开发存在这样一个生命周期:编码、测试、发布,然后不断重复。通常是这样的开发步骤:1) 开发人员开发完毕某一版本(如版本A)功能后,提交测试;2) 测试人员对待发布版本A进行测试,同时开发人员继续开发新功能(如版本B);3) 测试人员提交bug,研发人员修复bug,同时继续开发新功能;4) 重复第3步骤,直到待发布版本A测试通过测试后,发布第一版本...原创 2018-02-08 10:26:05 · 497 阅读 · 1 评论 -
微信开发工具SDK推荐
推荐使用这个weixin-java-tools微信SDK,在熟悉微信文档的基础上,可以减少重复造轮子微信公众号官方文档地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432微信商户平台支付文档地址:https://pay.weixin.qq.com/wiki/doc/api/index.html微信开放平台文...原创 2018-02-08 14:30:22 · 566 阅读 · 0 评论 -
OSS的临时授权记录
主要是临时授权给移动端上传下载,临时授权提供读写功能对OSS存储的了解先看这篇博客:http://172.16.1.98:83/wordpress/2017/11/22/oss%E5%AD%98%E5%82%A8%E8%A7%84%E8%8C%83/参考文档:https://help.aliyun.com/document_detail/31953.htmlpackage com.lemo.fac...原创 2018-02-08 14:29:53 · 2128 阅读 · 0 评论 -
SpringMVC多数据源的单元测试
问题由于项目中配置的多数据源是动态,在service层的类上或方法上设置了注解,如@DataSource正常项目运行时可以使用的。但是单元测试时虽然进入了切面,默认运行的还是配置中设置的默认数据源,并没有切换数据源bean.xml<!--统一的dataSource--><bean id="dynamicDataSource" class="com.lemo.rms.config...原创 2018-02-08 13:54:07 · 1784 阅读 · 0 评论 -
Java 解压缩zip和tar.gz
记录压缩有空目录报错的问题,使用的是Apache的common-compress1.9 ZIP格式的解压缩package com.lemo.rms.util;import org.apache.commons.compress.archivers.zip.Zip64Mode;import org.apache.commons.compress.archivers.zip.ZipArchive...原创 2018-02-08 13:53:41 · 1905 阅读 · 0 评论 -
Spring Data JPA的save之坑
问题因为想要用mysql自增id,想要在save之后获取这个保存的实体的id判断是否插入成功,一直以为Spring Data JPA中的save方法执行结束之后,save(entity)中的entity就会自动被更新为保存的entity,但是其实不是这样的,save之后这个实体的id总是为0解决办法必须在主键get方法上要加上@GeneratedValue(strategy = Generatio...原创 2018-02-08 13:52:47 · 21541 阅读 · 1 评论 -
MySQL数据库8小时问题
简介在MySQL 的默认设置下,当一个连接的空闲时间超过8小时后,MySQL 就会断开该连接,而应用中的连接池并不会感知这一变化,继续以为该被断开的连接依然有效,这就造成了在访问是报错。通常的错误描述为the last package successfully received from the server was XXX seconds ag0。解决通过配置数据库连接池的方式检测解决<!...原创 2018-02-08 10:33:37 · 703 阅读 · 0 评论 -
使用Redis处理抽奖高并发
问题:防止用户非法请求并发请求比较大数据库压力大方案:负载均衡缓存多线程异步…流程:初始化-把抽奖活动和奖品数据都放到redis缓存当有用户参与抽奖活动就从redis把奖品列表取出来调用之前提到的算法如果中奖更新redis数据,同时提交任务到线程池,更新数据库中奖品的数量同时保存抽奖结果到数据库为了利用redis的decr功能来保证修改奖品余量的一致性,每一个奖品的余量需要在redis中单独做缓存...转载 2018-02-08 10:33:10 · 5704 阅读 · 0 评论 -
关于RestTemple发送微信请求遇到的坑
一、发送请求中文乱码RestTemple默认字符编码为ISO-8859-1,而我们需要使用UTF-8。不然getForObject得到的数据中文乱码,或者postForObject发送的数据乱码。二、数据转换Map是因为微信接口文档虽说返回的是 Json 数据,但是同时返回的 Header 里面的 Content-Type 值确是 text/plain 的!!对于RestTemple默认可以转换的...原创 2018-02-08 10:32:36 · 2003 阅读 · 0 评论 -
体验 Java 9 交互式编程环境Jshell使用示例
简介Java 9 正式版已于当地时间的 9 月 21 日(北京时间大约是9月22日凌晨)如期发布。可前往Oracle 官网下载。Java 9 没有像 Java 5/Java 8 那样引入新的编程范式而给语言本身带来革命性的改进,不过 Java 9 的改动还是很大的,尤其是引入模块化对 JDK 与运行时的改动都很大。特性▶ 交互式命令行(JEP 222: jshell: The Java Shell...转载 2018-02-08 10:08:46 · 738 阅读 · 0 评论 -
Jackson实现序列化和反序列化
简介通俗的来说,Jackson是一个 Java 用来处理 JSON 格式数据的类库,其性能非常好。Jackson具有比较高的序列化和反序列化效率,据测试,无论是哪种形式的转换,Jackson > Gson > Json-lib,而且Jackson的处理能力甚至高出Json-lib近10倍左右,且正确性也十分高。使用Jackson提供了很多类和方法,而在序列化和反序列化中使用的最多的类则...原创 2018-02-08 10:08:02 · 21795 阅读 · 2 评论 -
mybatis批量更新遇到的坑
前言实际上,我们经常会遇到这样的需求,那就是利用Mybatis批量更新或者批量插入(一般是sql语句有分号时有问题),但是,实际上即使Mybatis完美支持你的sql,你也得看看你操作的数据库是否支持。问题先带大家来看一段sql的配置,<update id="updateState"> <foreach collection="list" item="item" inde...原创 2018-02-08 10:07:34 · 909 阅读 · 0 评论 -
Mybatis的动态SQL语句
刚进公司使用的是Jfinal,第一次使用记录MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑。MyBatis中用于实现动态SQL的元素主要有:ifchoose(when,otherwise)trimwheresetforeachif就是简单的条件判断,利用if语句我们可以实现某些简单的条件选择。先来看如下一个例子:Xml代原创 2018-02-07 20:32:35 · 375 阅读 · 0 评论 -
Java几种对象( PO、BO、VO、DAO、DTO、POJO)解释
最近在学习用SSM框架写渡渡ERP,之前对这些专业缩略语都不太懂,所以做个记录。一、常见的专业对象1、PO:persistant object 持久对象最形象的理解就是一个PO就是数据库中的一条记录。好处是可以把一条记录作为一个对象处理,可以方便的转为其他对象。2、BO:business object 业务对象主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其他的原创 2018-02-07 20:31:32 · 714 阅读 · 1 评论 -
Java中的值传递和引用传递
一:首先要说明的是java中是没有指针的,java中只存在值传递,只存在值传递!!! 然而我们经常看到对于对象(数组,类,接口)的传递似乎有点像引用传递,可以改变对象中某个属性的值。但是不要被这个假象所蒙蔽,实际上这个传入函数的值是对象引用的拷贝,即传递的是引用的地址值,所以还是按值传递。二:首先让我们熟悉一下8种基本类型:byte、short、int、long、float、double、b原创 2018-02-07 20:30:42 · 194 阅读 · 0 评论 -
JS回调函数
看了蒙秀泽发表的Java回调机制,做个总结,回调必然用到接口,他所谓的回调机制就是:在A类中定义了一个方法,这个方法中用到了一个接口和该接口中的抽象方法,但是抽象方法没有具体的实现,需要B类去实现,B类实现该方法后,它本身不会去调用该方法,而是传递给A,供A去调用,这种机制被称为回调。Teacher类中定义了一个提问方法,这个方法用到了Student接口和该接口中的解决问题方法,但是抽象方法没原创 2018-02-07 20:29:41 · 200 阅读 · 0 评论 -
Guava库介绍之集合(Collection)相关的API
第一次使用Guava1. 一些小功能集合声明更简单Java中同质的范型集合是一个很大的特色,但是有些时候他们的构造函数有点太啰嗦了,比如:MapString, MapString, Integer>> lookup = new HashMapString, MapString, Integer>>();在Java 7中通过钻石操作符来允许有限的非正式的类型推导。转载 2018-02-07 20:28:52 · 237 阅读 · 0 评论 -
SVN的使用原则
刚开始进入公司什么都不懂,初学者可以看看SVN使用步骤检出 Check Out更新 Update冲突 Confilicte添加 Add (没有添加项目可不写)填写 Svn注释提交 Commit文件显示颜色文件显示颜色:【1】蓝色左箭头:资源库-->本地(更新)【2】灰色右箭头:本地-->资源库(提交)【3】蓝灰箭头:包含【1】【2】【4】红色:冲突文件转载 2018-02-07 20:27:51 · 320 阅读 · 0 评论 -
多线程队列 BlockingQueue的使用
最近在写批量发送短信看多线程写可以选择一个特殊的队列:BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。如果BlockQueue是空的,从BlockingQueue取东西的操作将会被阻断进入等待状态,直到BlockingQueue进了东西才会被唤醒.同样,如果BlockingQueue是满的,任何试图往里存东西的操作也会被阻断进入等待状态,直到BlockingQueu原创 2018-02-07 20:26:49 · 772 阅读 · 0 评论 -
Java多线程三种创建方式
最近在做代码优化时学习和研究了下JAVA多线程的使用,线程类的一些方法辉哥也已经发过了,所以只是对线程的实现做个总结一、Java多线程实现方式主要有三种:1、继承Thread类2、实现Runnable接口3、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。(1)继承T转载 2018-02-07 20:24:45 · 215 阅读 · 0 评论 -
js数组常用方法整理
最近做的项目当中,我在页面做一些逻辑的时候比较多的用到了js数组的相关知识。有些知识在用的时候还不是很熟练,在网上找了整理下js数组相关知识,以备以后查阅。1、数组的创建var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度 var arrayObj = ...转载 2018-02-08 10:02:33 · 333 阅读 · 0 评论 -
Java的自动装箱和自动拆箱
Java为每种基本数据类型都提供了对应的包装器类型。举个例子:public class TestMain{ publicstatic void main(String[] args) { Integer i =10; }} 这个过程中会自动根据数值创建对应的Integer对象,这就是自动装箱。再看另外一段代码:public class TestMain{ pu...转载 2018-02-08 10:02:44 · 304 阅读 · 0 评论 -
深入详解Java中的hashcode()与equals()方法
Java中的超级父类 java.lang.Object 定义了两个重要方法:hashCode()与equals()方法。它们不仅被大量地直接使用,而且与集合容器,特别是与基于哈希机制的集合容器有着紧密的联系。本文中,我们首先提供一个常见的错误代码示例,接着分析错误原因,最后详细阐述 hashcode() 与 equals() 方法之间的契约。public boolean equals(Object...原创 2018-02-08 10:06:59 · 606 阅读 · 0 评论 -
如何高效判断Java数组是否包含某个值
在Java中,我们如何判断一个未排序数组中是否包含一个特定的值?这在Java代码中是一个频繁且非常实用的操作。那么什么样的方法才是最高效的方式?主要包括以下几种方法:四种方法Listpublic static boolean useList(String[] arr, String value) { return Arrays.asList(arr).contains(value); } Setp...转载 2018-02-08 10:06:21 · 582 阅读 · 0 评论 -
HTTP中Get与Post的区别
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。1.根据HTT...转载 2018-02-08 10:05:45 · 212 阅读 · 0 评论 -
纪念
雷默一年写了44篇博客,依此纪念原创 2018-02-08 10:03:30 · 207 阅读 · 0 评论 -
SpringMVC接收复杂集合参数,集合对象
Spring MVC在接收集合请求参数时,需要在Controller方法的集合参数里前添加@RequestBody,而@RequestBody默认接收的enctype (MIME编码)是application/json,因此发送POST请求时需要设置请求报文头信息,否则Spring MVC在解析集合请求参数时不会自动的转换成JSON数据再解析成相应的集合。以下列举接收List<Integer...原创 2018-02-08 10:03:04 · 9455 阅读 · 3 评论 -
Mybatis Integer类型,值为0被认为是空字符串的解决办法
mybatis写查询时,正常是先判断是否为空,我们一般是这样写。<if test="type != null and type != ''"> and type = #{type} </if>如果不空null并且不是空字符串才去修改这个值,但这样写只能针对字符串(String)类型,如果是Integer类型的话就会有问题了。因为Integer对象,为零则...原创 2018-02-08 10:02:59 · 1907 阅读 · 0 评论 -
Java序列化相关知识学习
每次写DTO类虽然都实现了Serializable接口,但是其并没有显示声明serialVersionUID,网上发现这样的话每次打包有改动JDK就会为其重新生成serialVersionUID.这就带来了不同版本之间的实体类可能反序列化不成功,线上RPC调用出现了问题.那么就深入探讨一下原因.Serializable的作用看该类的JDK注释可以发现The serialization interf...原创 2018-02-08 10:02:54 · 232 阅读 · 0 评论
分享