- 博客(26)
- 收藏
- 关注
原创 Callable,Runnable比较及用法
1.Runnable和Callable的相同点 Runnable的源代码如下:@FunctionalInterfacepublic interface Runnable { public abstract void run();} Callable的源代码如下:@FunctionalInterfacepublic interface Callabl...
2019-11-05 18:54:34 420 1
原创 如何使用Spring框架判断对象是否为空
使用org.springframework.util包下的ObjectUtils.isEmpty(Object obj),源码如下public static boolean isEmpty(Object obj) { if (obj == null) { return true; } if (obj.getClass().isArray()) { return Ar...
2019-01-07 15:22:58 13986
原创 springboot单独使用feign简化接口调用
与HttpClient和RestTemplate相比,使用springcloud的feign调用远程接口更为简便,可以通过配置的方式快速书写接口调用的代码。但是有时我们并不像使用springcloud,而只是想在springboot中使用feign,我在网上搜了很多springboot单独集成feign,但都不能用,在通过学习、开发后简单整理了一个教程。详细介绍如何在springboot中单独集成feign以简便的方式调用远程接口。
2020-01-13 18:21:58 4967 2
原创 使用Spring工具类拷贝流
以前我们拷贝输入输出流的时候,代码要写一大段,而且还需要手动关闭输入输出流,今天这里介绍一个非常好用且方便的工具类,Spring核心包自带的FileCopyUtils
2019-12-25 15:22:16 1104
原创 mybatis使用resultType=hashmap时发现值为null的参数没有返回导致空指针异常
解决方法:配置mybatis配置中的callSettersOnNulls参数为ture;官网是这样介绍这个参数的:指定当结果集中值为 null 的时候是否调用映射对象的 setter(map 对象时为 put)方法,这在依赖于 Map.keySet() 或 null 值初始化的时候比较有用。注意基本类型(int、boolean 等)是不能设置成 null 的。默认情况下,callSett...
2019-12-23 17:24:56 2804 1
原创 JVM加载class文件的原理机制?
1.JVM加载class文件的原理机制?JVM即Java Virtual Machine,Java虚拟机。Java中的所有类都必须装载到JVM中才能运行,java中类的装载由JVM的类加载器完成,类加载器的实际工作就是将class文件从硬盘读取到内存中。Java中的类大致可以分为三种:1)系统类2)扩展类3)由程序员自定义的类而类的加载器也分为三种,即Bootst...
2019-11-05 11:55:39 501 1
原创 使用private修饰内部类
public class OuterClass { private class InnerClass { public void print() { System.out.println("打印内部类 "); } } public static void main(String[] args) { ...
2019-10-09 15:26:46 4305
原创 一些有关spring中aop的术语和基础概念
如果了解过spring,都应该熟悉或者了解过aop即面向切面编程的概念,但是在学习aop时有一些术语总是在困扰着我们,本篇文章就spring aop中用到的术语和基础概念进行详细的讲解:Joint point(连接点):表示在程序中明确定义的点,比如方法调用,对类成员的访问等等 Pointcut(切点):表示一组 joint point,这些 joint point通过通配、正则表达式等方式...
2019-10-08 15:30:05 232
原创 中文加解密异常的问题
在使用AES加密时要注意指定字符编码,要使用String.getBypes(String charsetName)而不能使用String.getBytes(),后者源码中有一句:String csn = Charset.defaultCharset().name();Charset.defaultCharset()返回此Java虚拟机的默认字符集。默认字符集在虚拟机启动期间确定,通...
2019-09-19 17:30:28 1055
原创 Spring初始化Bean和销毁Bean的逻辑处理
如果需要Spring在Bean初始化或Bean销毁之后执行一些逻辑,那么有三种方法,一、第一种方法是通过指定Bean的init-method方法和destroy-method的方法1、首先先在Bean中添加两个方法,一个是在初始化后执行的方法,一个是在Bean销毁之后执行的方法public class Bean { public void onInit() { ...
2019-09-13 13:34:57 470
原创 使用Lambda表达式来实现设计模式中的策略模式
1.什么是策略模式? 策略模式代表解决一类算法的通用解决方案,你可以在运行时选择使用哪种方案。2.策略模式包含三部分:(1)一个代表某个算法的接口(2)一个或多个该接口的具体实现,比如声明一个Strategy接口,而后创建实现Strategy接口的类(StrategyA和StratetyB)(3)一个或多个使用该策略(接口)的客户3.我们可以先定义一个验证数值大小的接...
2019-06-14 16:12:28 1025
原创 使用itext5给PDF添加文字水印
1.首先在pom文件添加依赖 <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.13</version>...
2019-04-25 17:40:59 4111 2
原创 final关键字的作用
用final关键字修饰的类不能被继承,即该类是最终类;用final关键字修饰的实例变量的值不能被修改用final关键字修饰的方法不能被子类重写,但可以被子类继承;这里重新说一下重写的定义:子类中的方法只要方法签名即方法名+参数列表相同即为重写。参数列表即参数类型及参数顺序,不包括参数名称例如:...
2019-04-20 10:03:27 387
原创 使用fastjson序列化对象时,添加getter方法
使用fastjson序列化对象时,添加getter方法后,在序列化的时候,fastjson会先利用反射找到对象类的所有get方法,接下来去掉get前缀,然后首字母小写,作为json的每个key值,而get方法的返回值作为value。添加到json中。例如:实体类Userpublic class User implements Serializable{ private Long ...
2019-02-24 21:44:16 2046
原创 文件下载或导出注意事项
1.ajax不能用于下载文件,ajax请求只是个字符型的请求,即请求到的内容是以文本类型存放的。文件的下载是以二进制形式进行,虽然可以读取到返回的response,但只是读取,无法执行。也就是说js无法调用到浏览器的下载处理机制。2.解决办法:可以使用a标签来实现下载<a href="/file/download">点击下载</a>3.也可以使用表单提交的方式...
2019-02-15 09:31:46 298
原创 创建持久化实体类需要注意的事项
1.实体类需实现Serializable接口,标记实体类可序列化。2.实体类中需加 private static final long serialVersionUID; serialVersionUID适用于Java的序列化机制,简单来说,Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的seria...
2019-01-30 17:39:27 1166
原创 jquery为元素动态添加点击事件注意事项
//为登出按钮添加点击事件 $(".top_exit>a").click(function () { ajaxLeave(); });1.错误写法:该写法将导致运行到该语句时,立即运行ajaxLeave方法,而不是当点击事件发生时。 //为登出按钮添加点击事件 $(".top_e...
2019-01-30 16:50:19 227
原创 Long.ValueOf(Str) 与 Long.parseLong(Str) 的区别
Long.ValueOf(Str) 与 Long.parseLong(Str) 的区别Long.ValueOf(Str) 返回Long包装类型Long.parseLong(Str) 返回long基本数据类型
2018-12-16 18:18:13 1404
原创 验证码倒计时
获取验证码的html为:<a href="javasript:;" onclick="getVerifyCode()">获取短信验证码</a>js代码为 var countdown=60; //obj是Jquery对象 function settime(obj) { if (coun...
2018-12-16 17:26:52 1679
原创 随机整数的生成
要想随机生成从1到100,包括1,但不包括100的整数有两种方法:new Random().nextInt()和Math.random(),下面来谈一下两种方法的区别:1.两种方法分别属于不同的类:new Random().nextInt()是java.util.Random类中的方法Math.random()是java.lang.Math类中的静态方法2.使用方法和产生随机数的范...
2018-12-16 16:48:20 2176
原创 Spring注解简略介绍
Spring的传统使用方法是使用xml文件来对要管理的bean进行管理,但此种方式会有一个缺点:当需要配置的bean非常多时会导致配置文件的可读性以及可维护性大大降低。为了解决这个问题,我们可以使用注解的方式让Spring来管理bean下面介绍几个较为常用的注解:1.@AutowriedAutowried中文意思是装配,@Autowried的作用就是当我们需要一个bean的实例...
2018-12-05 18:27:53 126
原创 通过@RequestBody注解将前端异步传输的xml或json格式的数据封装到Controller的方法参数上
@RequestBody注解有两种使用方式:1.@RequestMapping注解的方法的返回结果通常将被解析为跳转路径,而使用@ResponseBody注解表示该方法的返回结果将直接写入HTTP的response body中,@ResponseBody一般使用在异步获取数据也就是使用AJAX时,比如异步获取json数据,加上@ResponseBody后,会直接返回json数据。2.@Re...
2018-11-25 17:17:33 3533
原创 关于dhtmlx.common.js的deleteRow_ex方法的改进
关于dhtmlx.common.js的deleteRow_ex方法的改进更改前代码: * 删除选中记录 */dhtmlXGridObject.prototype.deleteRow_ex = function(){ var dhxGrid = this; var deleteIds = dhxGrid.getCheckedRows(0); if(deleteIds==""){...
2018-11-20 23:42:21 295
原创 WPF有关App.config配置节的增删改查
1. 操作App.config必须在项目中添加引用System.Configuration,并且在代码中添加using System.Configuration。2.增加*.exe.config配置文件的Appsettings配置节public void addItem(string key, string value){ //添加配置文件的项,键为key,值为value ...
2018-09-14 10:06:18 904
原创 C# 子对象要调用父对象时不能再NEW一个父对象
先上代码:父对象代码段:class DiagramDrawModuleController:case "MainWindow_mnu_view_show": SetGridLine setGridLine = new SetGridLine(); setGridLine.diagramD...
2018-07-25 10:56:21 540
原创 有关serialize()和new FormDate()表单序列化的问题
html代码:<form id="upload" enctype="multipart/form-data" method="post"> <br> <a href="javascript:;" class="file"> <input type="file
2018-07-11 19:56:22 875
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人