![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 80
maple 枫
Everything has to be perfect.
展开
-
如何优雅的调用接口?
客官稍等。。占个位置原创 2021-01-21 11:06:40 · 3001 阅读 · 0 评论 -
重试任务(二)
1、表CREATE TABLE `retry_task` ( `task_id` varchar(128) NOT NULL COMMENT '主键id', `gmt_create` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT '创建时间', `gmt_modified` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' COMMENT '修改时间'原创 2020-12-29 17:53:23 · 1331 阅读 · 2 评论 -
BDD之单元测试(三):BDD的官方教程
cucumbercucumber是BDD(Behavior-driven development,行为驱动开发)的一个自动化测试的副产品。它使用自然语言来描述测试,使得非程序员可以理解他们。Gherkin是这种自然语言测试的简单语法,而Cucumber是可以执行它们的工具。附cucumber官网链接cucumber本质上是使用根据正则表达式匹配自然语言,然后依次执行对应的方法,以达到测试的目的。GherkinGherkin是自然语言测试的简单语法。一个完整的测试是由多个step组成的,s原创 2020-07-12 13:08:38 · 2972 阅读 · 0 评论 -
BDD之单元测试(二):ATDD,TDD,BDD的区别
ATDD: Acceptance Test Driven Development(验收测试驱动开发)这是一种在编码开始之前将客户带入测试设计过程的技术。它也是一个协作实践,用户,测试人员和开发人员定义了自动验收标准。 ATDD有助于确保所有项目成员准确理解需要完成和实施的内容。如果系统未通过测试可提供快速反馈,说明未满足要求。验收测试以业务领域术语进行指定。每个功能都必须提供真实且可衡量的业务价值,事实上,如果您的功能没有追溯至至少一个业务目标,那么您应该想知道为什么您要首先实施它。TDD: Tes原创 2020-07-12 11:03:14 · 1115 阅读 · 0 评论 -
BDD之单元测试(一):BDD出现的背景
目录为什么要BDD?BDD是什么?BDD怎么做?BDD有什么好处?什么样的项目适合BDD?为什么要BDD?“开发软件系统最困难的部分就是准确说明开发什么” (“The hardest single part of building a software system is deciding precisely what to build” —No Silver Bullet, Fred Brooks) 。场景一:业务分析人员觉得自己分析的需求已经写的很清晰了,并且跟技术人员.原创 2020-07-12 10:57:28 · 1546 阅读 · 1 评论 -
重试任务(一)
项目中有很多地方需要重试,比如说调银行的一个退款功能,调完之后需要我们自己去主动查询银行的退款结果接口,这个时候产品过来跟你说,我想调退款接口之后,先10分钟的查,查询几次之后查不到结果就30分钟的查,再然后60分钟。。。思考一下怎么写呢?撸码:public class RetryHandler { /** * retry intervals (s) *...原创 2020-01-02 20:15:43 · 319 阅读 · 2 评论 -
按顺序执行处理器、校验器
关于上面,一步接一步处理数据、校验数据的流程,映射到我们代码里该怎么写呢?方法一、可以按照这个流程图一步一步的写代码,把这个流程给写完;但是缺点是不够灵活,不好扩展;方法二、1、既然是一步一步的,有时候下一步的操作需要用到上一步处理之后的数据,所有优先级是需要的;2、把处理和校验分别当作一个接口,新增了处理器、校验器直接实现前面的接口即可;3、基类里帮我们做与业务无关...原创 2019-12-31 15:35:47 · 407 阅读 · 0 评论 -
java实现图片的组合(一)
需求是这样子的:当用户在我们的公众号里购买课程成功后,我要推送一条课程详情的信息和一张图片;图片里有购买课程的用户头像,用户昵称,课程名称,讲师的二维码等,由于这些信息都是动的,那我只能用图片的组合关系来做。由下图可知,有三个地方是写死不动的(邀请卡,邀请您添加我们微信,长按识别二维码),四个地方是动的(用户头像,用户昵称,课程名称,讲师的二维码)。那一开始,肯定是UI要出个图,把不动的地方给写死...原创 2018-07-09 17:36:48 · 2321 阅读 · 0 评论 -
JavaWeb中filter的详解及应用案例
转载自:http://www.cnblogs.com/vanl/p/5742501.html一:Filter介绍 Filter可认为是Servlet的一种“变种”,它主要用于对用户请求(HttpServletRequest)进行预处理,也可以对服务器响应(HttpServletResponse)进行后处理,是个典型的处理链。它与Servlet的区别在于:它不能直接向用户生成响应。完整的流程是:F...原创 2018-07-16 11:31:40 · 8929 阅读 · 3 评论 -
测试Integer比较问题
public static void main(String[] args) { try { Integer a = 128; Integer b = 128; Integer c = 127; Integer d = 127; int e = 200; ...原创 2018-07-12 10:36:42 · 365 阅读 · 0 评论 -
java实现图片的组合(二)
本篇文章是续接上篇文章的 ,是对上篇文章做了一些优化,所以如果你没看过上篇文章的话,可以移步到java实现图片的组合(一)具体优化点主要包括:1、不使用JPEG,这样就可以把pom文件里的rt.jar去掉<build> <filters> <filter>../build/${env}.propertie...原创 2018-07-12 20:43:23 · 1719 阅读 · 0 评论 -
java实现图片的组合(三)
前两篇文章都是用 Graphics ,这个是用来绘制图片的主要思路是:BufferedImage buffImg = ImageIO.read("new File(E:/123.jpg)");Graphics g = buffImg.getGraphics();如果是绘制图片的话g.drawImage(BufferedImage img,int x,int y);如果是绘制文字的话g.drawSt...原创 2018-07-12 21:13:01 · 1592 阅读 · 0 评论 -
Java中生成随机数Random、ThreadLocalRandom、SecureRandom、Math.random()
转载自:https://blog.csdn.net/lovesomnus/article/details/8257849我们来说说Java常见的生成随机数的几种方式:Random,ThreadLocalRandom,SecureRandom;其实产生随机数有很多种方式但我们常见的就这几种,如果需要详细了解这个三个类,可以查看JAVA API.Random random = new Random()...原创 2018-07-13 11:18:04 · 10532 阅读 · 2 评论 -
使用Random生成随机数
这里是用Random来实现的,你可根据不同的场景使用不同的Random具体使用场景可看我上篇文章 Java中生成随机数Random、ThreadLocalRandom、SecureRandom、Math.random()/*根据指定长度生成字母和数字的随机数 *0~9的ASCII为48~57 *A~Z的ASCII为65~90 *a~z的ASCII为97~122 ...原创 2018-07-13 11:22:17 · 8468 阅读 · 2 评论 -
Tomcat installation at this directory is version 9.0.0.M26. A Tomcat 8.0 installation is expect
tomcate:apache-tomcat-9.0.0.M26eclipse:Version: Luna Service Release 2 (4.4.2)背景:在eclipse中添加 server -> Runtime Environment -> Add -> Apache Tomcate v8.0 -> Next -> Tomcate installation diretory原创 2017-10-13 10:37:05 · 2604 阅读 · 0 评论 -
servlet request getHeader("x-forwarded-for") 获取真实IP
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了 Apache,Nagix等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用 request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或 192.168.1.110,而并不是客户端的真实IP。转载 2017-06-18 22:50:45 · 323 阅读 · 0 评论 -
Spring中配置和读取多个Properties文件--转
public class PropertiesFactoryBeanextends PropertiesLoaderSupportimplements FactoryBean, InitializingBeanAllows for making a properties file from a classpath location available as Properties instanc原创 2017-06-18 22:30:44 · 310 阅读 · 0 评论 -
jdbc启动错误(The driver has not received any packets from the server)
1.2 解决方法- 如果使用的是JDBC,在JDBC URL上添加?autoRec>,如:jdbc:mysql://10.10.10.10:3306/mydb?autoRec - 如果是在Spring中使用DBCP连接池,在定义datasource增加属性validationQuery和testOnBorrow,如:原创 2017-06-18 22:33:16 · 42272 阅读 · 0 评论 -
SpringMVC 解决IE8浏览器把返回报文格式application/json当文件下载的问题
produces = {MediaType.TEXT_PLAIN_VALUE +";application/json;charset=utf-8"}解决浏览器兼容一直是个头疼的问题,尤其是IE浏览器,最近开发上传文件接口的时候,由于IE8及以下不兼容JS上传组件,所以采取了iframe框架,利用form表单提交,遗憾的是,返回报文格式:application原创 2017-06-18 22:35:57 · 1141 阅读 · 0 评论 -
集合和数组的相互转换
1、集合转数组AllUserOperateLogVO [] array = list.toArray(new AllUserOperateLogVO[list.size()]);2、数组转集合String[] headersArray = {"手机号","操作类型","业务平台","渠道","IP","操作结果","操作时间"};List headers = Arrays.原创 2017-06-18 22:39:44 · 570 阅读 · 0 评论 -
DateUtil日期工具类
public class DateUtil { // private static final Log log = LogFactory.getLog(DateUtil.class); ** * 获取当前java.util.Date型日期 * * @return java.util.Date() 当前日期 * p转载 2017-06-18 22:45:50 · 1643 阅读 · 0 评论 -
Java中获取完整的url
HttpServletRequest httpRequest=(HttpServletRequest)request; String strBackUrl = "http://" + request.getServerName() //服务器地址 + ":" + request.原创 2017-06-18 23:02:23 · 317 阅读 · 0 评论 -
IE Firefox 在进行某些跳转时请求头中不会附加 Referer 字段信息
IE Firefox 在进行某些跳转时请求头中不会附加 Referer 字段信息http://www.w3help.org/zh-cn/causes/CH9004IE6 IE7 IE8 始终不在使用 META 元素控制跳转时附加 Referer 字段到请求头中。在普通页面中,当脚本调用 location 对象进行跳转时也不会附加 Referer 字段信息;Firefox 始终不在使用原创 2017-06-18 23:05:32 · 1350 阅读 · 0 评论 -
java读取.properties配置文件的几种方法
读取.properties配置文件在实际的开发中使用的很多,总结了一下,有以下几种方法(仅仅是我知道的):一.通过jdk提供的java.util.Properties类 此类继承自java.util.HashTable,即实现了Map接口,所以,可使用相应的方法来操作属性文件,但不建议使用像put、putAll这 两个方法,因为put方法不仅允许存入String类型的转载 2017-06-20 18:46:29 · 201 阅读 · 0 评论 -
springMVC、httpClient调用别人提供的接口。
public class HttpClientUtil {private static final String ITIL_URL = "172.20.11.49"; private static final int ITIL_PORT = 9999; private static final String ITIL_PROTOCOL = "http";@S原创 2017-06-19 19:24:47 · 5056 阅读 · 0 评论 -
java利用poi导出数据到excel里
源代码原创 2017-06-19 19:30:15 · 364 阅读 · 0 评论 -
【JAVA】java图片处理类库Thumbnails使用教程,图片缩放、裁剪、旋转、压缩
maven dependency[html] view plain copy print?<!-- https://mvnrepository.com/artifact/net.coobird/thumbnailator --> <dependency> <groupId>net.coobird</groupId> <ar...转载 2017-07-13 22:01:28 · 3074 阅读 · 0 评论 -
Socket 长连接 短连接 心跳 JAVA SOCKET编程
简单解释就是:短连接:建立连接,发送数据包,关闭连接长连接:建立连接,发送数据包,发送心跳包,发送数据包,发送心跳包,发送心跳包。。。。。。所以又频繁的数据收发的话,短连接会频繁创建TCP连接,而对于长连接,则始终用的是同一个TCP连接[java] view plain copy print?package com.tree.demo转载 2017-07-13 22:06:42 · 1671 阅读 · 0 评论 -
java生成带二维码
利用google的zxing jar包生成带logo或不带logo的二维码,相关maven依赖: com.google.zxing javase 3.0.0 封装好的工具类如下:package com.cbj.ut转载 2017-07-05 21:32:42 · 324 阅读 · 0 评论 -
分布式锁的三种实现方式
目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。”所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景中,都需要牺牲强一致翻译 2017-08-17 17:48:10 · 151 阅读 · 0 评论 -
java spring为ApplicationContext提供有三种实现(dubbo-consumer.xml)
spring为ApplicationContext提供的3种实现分别为:ClassPathXmlApplicationContext,FileSystemXmlApplicationContext和XmlWebApplicationContext,其中XmlWebApplicationContext是专为Web工程定制的。使用举例如下:1. FileSystemXmlApplicationCo转载 2017-06-18 22:15:01 · 1047 阅读 · 0 评论