自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (1)
  • 收藏
  • 关注

原创 Vector源码解析

Vector线程安全的使用synchronized修饰方法。add /** * Appends the specified element to the end of this Vector. * * @param e element to be appended to this Vector * @return {@code true} (as specified by {@link Collection#add}) * @since 1

2020-11-18 15:46:56 605 1

原创 关于String类中的intern()方法,你知道多少

1、问题引入在介绍今天的 知识点之前,先看下面的一段程序:public static void main(String[] args) { String s1 = "123456"; String s2 = new String("123") + new String("456"); s2.intern(); System.out.println("result1 = " + (s1 == s2)); System

2020-09-22 13:14:54 764

原创 代码覆盖率测试时使用jacocoagent.jar的问题

1. 问题描述项目中遇到的一个问题,简要描述下过程:有两个系统A和B,用户请求A系统的接口a,a接口获取到用户请求参数对象后,再结合A系统中缓存的用户信息构建新的对象参数obj,然后a接口传入参数obj请求B系统的下载接口B。就是这样一个A系统请求B系统接口的事,问题是:开发环境操作时,一切正常,但是测试人员进行测试的时候,显示的却是空白页面,无法下载。通过查阅发现,是测试人员在启动项目的时候,使用jacocoagent.jar进行代码覆盖率的统计。下面使用一个简单的来说明一下吧。2.Demo演示

2020-09-17 16:22:06 2542

原创 关于mybatis的test判断注意事项

在使用mybatis进行判断的时候,一定要注意传入的数据类型与判断的目标值类型是否一致。最近在一次开发过程,误将一个传入的整型数据使用了下面的判断方式:<if test="appType != null and appType != ''"> and a.c_appType = #{appType}</if>其中,appType是一个整型数据。可以看到,在test判断里面使用了 appType != ''。在进行业务功能测试的时候发现,当传入的值是0时,该条件

2020-09-08 09:45:09 1465

原创 一次毫秒级的时间差导致的业务异常

1. 业务问题描述线上有一个应用的某个接口调用量限制是1,000,000次,但是在早上9时左右,统计结果中显示本月的已调用量是1,043,222次,剩余调用量为0次,进而导致该应用无法正常调用该接口。如下图所示2. 问题跟踪据平日里的观察发现,该应用对该接口的一天调用量都是在10万以下,不太可能一下子就超过100万。首先,将整个代码流程看了一遍,似乎没有什么逻辑问题。然后线上日志查询,该接口当天第一次接口请求是调用成功的,但是在后续的调用结果中就是调用失败的。而且,统计出来本月的已调用量=该

2020-09-07 19:53:09 230

原创 AbstractOwnableSynchronizer源码解读

AbstractOwnableSynchronizer 抽象同步器抽象类,但是不包含任何抽象方法 提供了创建锁和相关同步器的基础 由子类实现使用适当的值来维护和管理,该类自身不管理或使用同步信息 该类仅包含一个子类可访问的、空实现的构造函数,一个线程对象以及其get和set方法...

2020-08-20 08:59:17 251

原创 关于mybatis批量更新操作

第一种写法:<update id="batchUpdate" parameterType="com.entity.TestMode"> <foreach collection="list" item="item" index="index" open="" close="" separator=";"> update user set c_username = #{item.userName} where c_id = #{item.id

2020-06-09 14:58:44 278

原创 存在失效地址导致JavaMailSender批量发送失败的原因分析及解决办法

1. 背景介绍最近的一个项目需求中,需要将接口变更内容发送到业务负责人及相关的开发者。由于负责人可能有多个,采用的是批量发送的方式来进行邮件发送。使用的是jar包是javamail,maven依赖如下所示。在提测过程中发现,如果待发送的邮件地址列表中存在一个无效的地址【该地址是一个合法的邮件地址,但是是无效地址,如:duanduan@163.com,它是一个合法的邮件地址,但却是无效的地址】,...

2020-01-17 15:56:10 4098

原创 javap指令

示例代码:package HelloWorld;public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World"); }}指令:javap -c HelloWorld执行结果如下图:指令:javap -p...

2019-12-05 13:13:31 205

原创 本地已经创建好的项目如果同步到Git上

前提:本地系统已安装Git.(1)首先进入项目的根目录,右键选择Git Bash Here.(2)创建说明文档touch README.md(3)初始化项目git init(4)添加全部已经修改的文件,准备commit 提交,该命令效果等同于 git add -A git add .(5)将修改后的文件提交到本地仓库git commit -m "...

2019-10-15 20:31:02 173

原创 shiro网站收藏

1. shiro学习+springboothttps://www.jianshu.com/p/9bfa22b0e905https://blog.51cto.com/wyait/2107423

2019-10-15 17:32:02 174

原创 工具包导致的程序bug小知识

知识点1:使用net.sf.json.JSONObject的fromObject方法将一个实体对象转换成map的时候,如果实体对象里面的Integer等整型对象为null,map中对应的key的值为0,不为null。解决办法:// 设置Integer类型为空的默认值 json-lib默认是0 jsonConfig.registerDefaultValueProcessor(Int...

2019-10-12 16:51:45 180

原创 用户登录之后,访问某个接口抛出异常,为什么会再次跳转到登录拦截器里面,并且,为什么此时登录拦截器里面校验的用户状态是未登录

问题描述操作介绍:请求某个接口A,在该接口中通过POST请求另一个接口B现象描述:由于请求接口B时URL地址错误,在接口A中没有捕获异常,出现异常之后。对此处的断点放行之后,会跳转到我的登录拦截器,登录拦截器里面校验的时候检测到用户未登录(实际在进行前面的一系列操作时用户是已经登录的)。问题跟踪通过断点调试,简要画出程序的跳转流程:说明:①②处说明 由于在HTTP...

2019-10-12 14:57:54 1030 1

原创 关于数据库主键的选择方案:自增长 or UUID??

1. 问题提出今天在看《mysql45讲》的时候,里面讲到这样一个例子:假设你的表中确实有一个唯一字段,比如字符串类型的身份证号,那应该用身份证号做主键,还是用自增字段做主键呢?由于每个非主键索引的叶子节点上都是主键的值。如果用身份证号做主键,那么每个二级索引的叶子节点占用约 20 个字节,而如果用整型做主键,则只要 4 个字节,如果是长整型(bigint)则是 8 个字节。显然,主键...

2019-09-07 16:42:17 310

原创 关于使用itext和freemarker你可能会遇到的一些问题,这里都有!!!

前段时间做了一个项目需求,需要将网页中间显示的一块内容转成PDF文档供用户下载。完成这个需求的过程中使用到了itext和freemarker,中间遇到了不少问题,这里分享一下,希望可以帮助到遇到同样问题的朋友。首先,先总结一下遇到过得一些问题吧。1. PDF中中文不显示2. 长英文字符串不换行3. 添加的字体文件编译、打包之后损坏,字体文件变大,导致字体不可用4. 将&l...

2019-09-01 20:52:46 4163 11

原创 FreeMarker 生成HTML文件

1. 什么是FreeMarker?FreeMarker是一个模板引擎,简单地讲,它就是将你的数据映射到模板上,形成一个静态的文件,可以是HTML文件,也可以是其他类型的一些文件。下面是对其官网上描述的翻译:Apache FreeMarker是一个模板引擎:基于模板和可变数据,用于文本生成的库(这些文本可以是HTML网页,e-mails,配置文件,源代码,等等)。模板是使用FreeMar...

2019-08-14 19:27:56 2232

原创 itext 将HTML转换成PDF的使用

前言:因为公司业务需求,现在需要实现HTML导出成PDF文件的功能,经过前期的调研,发现使用较多的就是itext,所以就对itext深入学习了一下。附上官网地址:https://itextpdf.com/en/products/itext-7/pdfhtml1. 引入pdfHTML是一个HTML到PDF的转换程序,可以轻松地将HTML和CSS转换为PDF文档。在使用的时候,需要导入相关...

2019-08-14 17:10:33 589

原创 接收没有收到请求,Why

1. 问题描述今天在测试之前已经写好的接口,运行以前能正确启动的测试代码时,响应码显示200,但是没有返回结果。然后在接口入口处写了输出语句,也没有打印出来。这是怎么了,怎么就不行了呢?2. 原因其实,原因很简单,就是请求被拦截了。项目设计就是在访问接口前,会对参数进行校验,只有校验成功才能进入接口。而我执着于接口和测试代码之间,迟迟没找到原因。然后在群里问了问,汪洋师兄提醒了我...

2019-08-09 14:56:24 262

原创 mvn install打包

问题:使用mvn install打包时,报下列错误:No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?问题解决:首先,看到一个比较好的文档,这个文档介绍了整个问题解决过程的分析,虽然本次并不是采用该文档中的方法解决的,但是有必要好好学习...

2019-08-07 17:35:48 393

原创 为什么使用json传递请求参数时,后台实体接收不到参数

1. demo介绍前几天测试接口的时候,以json的形式提交post请求数据,后台用一个实体类来接收参数,发现获取到的对象属性都为null。下面是我写的一个用于测试的小demo,来简单描述一下我所遇到的问题。项目包含的目录结构如下:User里面仅包含两个字段:username和password,如下:UserController里面有一个测试接口,如下:UserCo...

2019-07-16 16:56:44 11589

原创 关于Mybatis查询中列表里的对象为null的问题解决

1. 问题修正之前mapper.xml<resultMap id="fileConfig" type="demo.model.dto.FileConfigModel"> <id column="i_id" property="id"/> <result column="c_app_id" property="bizCode"/> ...

2019-07-09 20:07:37 2006

原创 springboot启动时卡住的问题

问题描述截图如下,也就是springboot启动不成功:解决过程:1. 第一步,根据日志提示,配置log4j-web,配置如下:依然无法启动,截图如下2. 第二步,参考其他项目配置,将下图中初始的12改成8。结果导致程序无法加载主类,后rebuild这个项目后,能够加载主类,但结果和上图一样。3. 第三步,我在main里面加入了打印输出语句,如下图1,结果输出如...

2019-07-04 11:18:18 14675 4

原创 知识点try -with-resources

try-with-resources是jdk7里新增的,在进行java IO操作时用到的较多,使用try-with-resource需要相应的数据流实现java.lang.AutoCloseable 接口,它与try-catch-finally的区别是,可以实现数据流的自动关闭。基本语法如下:try(语句1[; 语句2;语句3]){doSomething();}catch(Exce...

2019-07-03 09:04:14 131

原创 为什么在junit中进行多线程测试的时候,输出结果与预期结果不一致

Junit单元测试不支持多线程1. “缘”起在回顾synchronized的用法时,写了一个小程序,就是使用synchronized修饰一个代码块。核心代码如下所示:然后,使用Junit进行单元测试,测试代码如下:运行结果如下:显然,这和预期的结果是不一样的。然后,我又在java的main方法里写了同样的测试语句,运行结果如下:那么,为什么使用Junit运行出来...

2019-06-14 16:14:50 1633 1

原创 springMVC框架应用时遇到的问题

哇,这个问题必须记录一下,折腾了我好久!!!一、问题发现:在用户登录注册时,通过表单提交数据,数据不能与具体的实体类对象,而且自己构造数据,不能写入数据库。二、 解决过程起初以为是表单数据与实体类不对应,后经过测试核查,排除; 然后以为报错的空指针是实体类对象,后构造实例,排除;经检验,空指针是指userDao对象; 然后由百度了各种@Autowired的问题,均不能解决; ...

2018-08-04 13:36:57 345

转载 双亲委派模型

原文地址: http://blog.csdn.net/inspiredbh/article/details/74889654 Java虚拟机先从最核心的API开始查找,防止不可信的类扮演被信任的类。启动类加载器 Bootstrap ClassLoader:加载&lt;JAVA_HOME&gt;\lib目录下核心库扩展类加载器 Extension ClassLoader:加载&lt;JA...

2018-07-30 21:55:30 173

原创 ioc和aop的理解

ioc(Inversion of Control )和aop(Aspect Oriented Programming)是spring的两大核心,含义分别是控制反转和面向切面编程。先来说一下ioc吧,可以简单地理解就是将控制权交给依赖方,然后由依赖方为我们提供服务。通常ioc和di(依赖注入)是绑在一起。假设A依赖于B,在依赖倒转原则里,我们需要在A中new一个B的对象,也就是 B b=new ...

2018-07-30 21:41:38 598

原创 Redis和MySQL

在介绍redis和mysql之前,先说一下内存和磁盘,内存是计算机内存储器,磁盘是计算机外存储器; 存储在内存中的数据,如果断电后数据会丢失,而存储在磁盘中的数据则是持久化的,不会丢失。 内存中存储的是工作中用到的数据,磁盘中存储暂时不用的数据。mysql是关系型数据库,数据是写在磁盘上的,这也就是为什么说mysql是持久化存储的原因了。但是在我们进行数据访问的时候,就涉及到IO操作,那...

2018-07-30 14:23:44 264

原创 登录注册时信息泄露的几种攻击方法(知识片段记录)

用户登录注册时,导致数据库中数据泄露的几种方式:字典攻击 暴力破解 查询表 彩虹攻击(目前这个还没理解原理)为了加强用户登录注册时的安全性,通常不会在数据库中存储用户的明文密码,当服务器接收到用户发送过来的请求时,会将用户密码进行加密(比如采用MD5加密)。加密后的字符串还是很容易就可以被黑客攻击,因为对于相同的密码字符串,通过MD5加密之后,生成的加密字符串是完全一样,这样对于黑客来...

2018-07-30 09:11:46 882

原创 JDK的环境配置

关于JDK的配置,之前也配置过很多次,但是每次配置完之后就忘了,下次配置的时候又要重新去网上搜索,所以决定自己好好梳理一下:首先,JDK的配置分为3步,分别是JAVA_HOME,PATH,CLASSPATH。JAVA_HOME 设置的值是我们JDK的版本,假如我们使用的是jdk1.8的版本,则有JAVA_HOME:D:\Java\jdk1.8.0_181Path 要设置的就是两个b...

2018-07-29 12:59:59 124

原创 View OnclickListener与new DialogInterface.OnClickListener()冲突的问题

在进行Android开发的过程中,遇到在View Onclick()里面运用new DialogInterface.OnClickListener()时总是报错,这是因为二者冲突了,那么解决的办法是通过全名定义,如new android.content.DialogInterface.OnClickListener()。

2016-04-13 16:20:44 971

原创 关于MySQL数据中复合组件自增长的问题

create table test(id int auto_increment,name varchar(20),primary key(name,id)        ) engine = MyISAM;在写primary key时,要注意先后顺序,若id在前,则id从1开始一直增加,若name在前,则当name不同时,id从1开始增加,但是这种情况只适用于MyISA

2016-04-03 15:40:12 802

原创 关于将文件导入到安卓虚拟机里出现的问题

如果将文件导入到安卓虚拟机的sdcard中出现transfer error: Read-only file system Failed to push selection: Read-only file system解决方案是在命令行里输入adb shell mount -o remount rw /然后再导入文件。

2016-03-02 18:47:04 1290

原创 MyEclipse2015不能自动生成web.xml的问题解答

1、创建一个新项目2、点击next,再点击next,选中“Generate web.xml deployment descriptor”3、finish

2015-05-13 13:24:08 911

原创 关于adb server is out of date的问题

首先,点击“运行”输入“cmd”,进入命令行;接下来按下面的步骤执行第一步,输入netstat -aon | findstr "5037"(adb的运行端口)。作用是,查看5037端口被哪个应用端口占用了,我的这个是”5308“;第二步,输入tasklist | findstr "5308"。查看是哪个应用程序第三步,输入taskkill /f /t /im 应用程序名。

2015-04-09 22:22:43 679

ASP.NET开发在线留言本

1、用户能够注册 2、用户登录后 查看并编辑用户注册信息 首页分页显示全部的留言主题 可以留言,或对他人的留言进行回复 对自己的留言进行修改或删除 可增加的功能:下载专区功能,提供文件的上传、显示和下载

2015-03-13

空空如也

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

TA关注的人

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