- 博客(33)
- 资源 (1)
- 收藏
- 关注
原创 springboot目录结构(工程结构)推荐
一、创建各文件目录二、目录文件分类base 全局基础类(如:BaseService、BaseMapper)controller 控制层(调用service逻辑设计层的接口来控制业务流程)dao 数据持久层(别名:mapper层,与数据库进行交互)dto 数据传输层(接口调用间的数据传输对象)entity 实体层(存放实体类,与数据库表一一对应)enumeration 枚举类(存放枚举类,枚举统一管理)interceptor 拦截器(定义拦截器,如:日志打印拦截器、登录拦截
2021-05-27 17:27:58
1519
原创 idea创建springboot项目
一、创建项目前,请确认开发环境1、JDK1.8+2、Maven3.6+maven配置文件settings.xml修改:(1)、localRepository<localRepository>C:\Develop\apache-maven-3.6.0\repo</localRepository>(2)、mirror<mirror> <id>alimaven</id> <mirrorOf&g
2021-04-16 18:00:54
1608
1
原创 长链接转短链接
一、使用场景 二维码近几年超流行,有时项目中会使用到二维码,比如扫码登录后台。需要将字符串生成二维码,如果字符串太长,生成的二维码将会很难识别。此时就需要使用长链接转短链接。本文介绍使用微信长链接转短链接接口与新浪微博长链接转短链接接口。二、代码实现 因为长链接转短链接属于通用功能,所以外部项目会调用此功能,故以下代码是支持跨域调用的。这里使用了jquery....
2018-08-13 11:59:25
9240
原创 跨域请求之JSP中模拟post表单提交
一、使用场景 当我们需要跨域进行登录时,为了避免登录信息暴露在链接中,此时必须采用Post提交。同时Ajax是不支持跨域的。此时就可以采用在Jsp中模拟Post提交。二、代码实现 以下实例是跨域登录后台系统,我这边登录参数比较多,大家不必纠结参数含义。替换为自己的参数就好。总体思路就是:(1)创建临时表单。(2)、设置form表单属性。(3)、form表单添加到b...
2018-08-13 09:58:56
2368
原创 Redis工具类与Redis基本操作
一、简介1、本文使用JedisPool封装获取jedis的工具类,包括一些基本配置介绍。2、调用JedisPool封装的工具类封装了jedis的一些基本操作。3、本人水平有限,还望各位大佬指正文中的问题。二、使用Jedis时遇到的问题1、在高并发操作redis时,如果对Jedis操作不当会抛出 java.lang.ClassCastException: [B cannot be cast to j...
2018-05-11 16:25:55
1512
原创 AnyChat实例
前言:鉴于证券行业实施双录,本人秉承“热爱学习”的态度,就对AnyChat展开了”研究“。对于AnyChat的研究只作学习之用。 首先说一下,当前双录系统涉及的模块 AnyChat核心服务器----bin目录下server AnyChat录像服务器----bin
2017-08-02 17:39:08
2139
原创 列表数据多行删除
一、前言最近的项目中使用bootstrapTable进行列表的显示,需要对列表中的数据进行多行删除,在这简单记录下使用方法。二、效果图在这个无图不欢的时代,效果图当然是必须的。三、完整实例1、JSP中定义一个table
2016-08-05 17:16:09
4971
原创 bootstrap-datepicker 与bootstrapValidator同时使用时,选择日期后,无法正常触发校验
一、前言使用bootstrap-datepicker和bootstrapValidator也有一段时间了,在工作中发现两者同时使用时会出现的一种问题,当选择完日期后,并不会正确校验该字段。为了更加直观的展现问题,上图一张。可以看出,当选择完日期后,校验结果并没有达到预期,是因为bootstrapValidator插件默认情况下,不会重复校验一个已经标记为验证通过或验证不通过的字段。s...
2016-06-13 14:45:57
20974
17
原创 JsperReport导出PDF报表中文不显示
一、描述最近项目中使用IReport和JsperReport遇到导出PDF报表时,中文不显示。但填充完数据可以对PDF进行预览(JasperViewer.viewReport(jasperPrint, false);),稍后会贴出部分代码。经过在网上搜索,发现问题,在报表定义时要定义如下属性: Font name: 宋体 (中文字体)
2016-06-02 11:37:55
4486
4
原创 SpringMVC项目中使用kaptcha生成验证码
一、简介kaptcha是一个基于SimpleCaptche的验证码开源项目二、使用1、添加jar包依赖如果你使用maven来统一管理jar包,则在工程的pom.xml中添加dependency com.google.code.kaptcha kaptcha 2.3.2 2、添加kaptcha的配置文件
2016-06-01 15:09:34
2271
1
原创 动态添加表单元素,并使用bootstrapValidator插件进行动态添加校验
一、前言 实际工作中,要实现表单元素的动态增加,并使用bootstrapValidator插件对动态添加的表单元素进行前台校验。在以前的工作中也使用过bootstrapValidator对表单元素进行校验,但涉及到的表单元素都是固定的,所以在页面载入时,对表单元素进行初始化就可以实现。虽然思路很明确,但由于对bootstrapValidator的用法不熟悉,在这个问题上还是浪费了很多...
2016-04-14 16:31:33
24561
8
原创 MyBatis简单实例
一、简介MyBatis是支持定制化SQL、存储过程以及高级映射的优秀持久层框架。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以对配置和原生Map使用简单的XML或注解,将接口和Java的POJO(Plain Old Java Object,普通的java对象)映射成数据库的记录。二、入门要使用MyBatis,只需要将mybatis-x.x.x
2016-03-15 13:30:47
878
1
原创 tomcat启用gzip压缩提高浏览网站的速度
一、场景HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求网 页后,从服务器端将网页文件压缩,再下载到客户端,由客户端的浏览器负责解 压缩并浏览对于Tomcat5.0以后的版本是支持对输出内容进行压缩的。使用的是gzip压缩格式 。gzip压缩是非常流行的一种数据压缩格式,一般网站启用gzip后,压缩率都会有70%-80%的提升,效果是立竿见影的。二
2016-03-09 15:06:19
936
1
原创 zTree实现节点修改的实时刷新
一、应用场景在实际应用中会遇到动态操作树各节点的需求,在增加树节点后如何实时动态刷新树就十分有必要了。二、项目实践比如要在test1234节点下新建子节点,首先要选中test1234节点,添加成功后,根据test1234结点的TID去后台请求对应子节点数据,实现动态刷新。删除节点类似。三、代码实现1、初始化时必须设置配置<span style="fo...
2016-02-24 17:09:34
61895
3
原创 bootstrapValidator不触发校验
一、前言BootstrapValidator是基于bootstrap3的jquery表单验证插件,是最适合bootstrap框架的表单验证插件,在工作中用到此框架就写下自己在使用中积累的一些心得二、问题描述当按钮的类型为submit时,使用bootstrapValidator的isValid()能够使验证表单正常工作,但当button的type类型为button时,只调用bootstr...
2016-02-24 13:15:29
32023
13
原创 bootstrap-datepicker限定可选时间范围
一、应用场景实际应用中可能会根据日期字段查询某个日期范围内的数据,则需要对日期选择器可选时间进行限制,如:开始时间不能大于结束时间,结束时间不能小于开始时间,此时就要为开始日期选择器和结束日期选择器动态的设置startDate和endDate的值。二、相关知识点1、bootstrap-datepicker的初始化引入bootstrap-datepicker.js和boot...
2016-02-23 23:38:04
66527
15
原创 IO中的功能流对象
一、综述IO中的功能流对象为其他输出流添加了新功能,能够方便解决特定的问题。 1、打印流PrintStream与PrintWriter可以直接操作输入流和文件 2、序列流SequenceInputStream对多个流进行合并 3、操作对象ObjectInputStream与ObjectOutputStream被操作的对象需要实现S
2015-10-22 17:05:36
552
原创 IO操作中缓冲区原理
一、缓冲区原理原理:临时存储数据的方法,减少对设备操作的频率,提高了效率,其实就是将数据临时存储到了内存(数组)中。图解:二、模拟一个BufferedReader根据缓冲区原理图解,试着实现自己的BufferedReaderpublic class MyBufferedReader{ //1,持有一个流对象 private Reade
2015-10-21 17:11:48
1585
2
原创 IO流操作的规律
一、IO流操作规律1、总结IO流操作中,首先要明确开发中具体要使用哪个流对象。2、明确流对象步骤1,明确数据源,数据汇(数据目的)其实就是在明确要使用的IO体系。InputStream outpurStream Reader Writer需求中操作的是源:意味着是读, InputStream Reader需求中操作的是目的:意味着是写 Outp
2015-10-21 17:05:07
460
原创 properties的基本使用
一、概述1、properties的特点1,Hashtable的子类,map集合中的方法都可以使用2,该集合没有泛型,因为键值都是字符串3,它是一个可以持久化的属性集,键值可以存储到集合中,也可以存储到持久化的设备上。 键值的来源也可以是持久化的设备2、特有方法1,存数据public Object setProperty(Stirng key,St
2015-10-21 16:50:15
2398
原创 反射技术的浅析
一、反射中的基本概念1、反射的应用场景1、当一个应用程序定义完之后,后期如果要使用更多的对象,而对象不确定的时候,我们可以对外提供配置文件,2、反射技术的出现在不修改程序源代码的前提下,提高了程序的扩展性。2、反射的由来以前获取对象的时候,需要有确定的类,利用反射技术可以动态的获取类以及类中的成员,并可以调用该类的成员。反射技术中:没有类,给什么类就new什么对象,无论
2015-10-20 17:28:46
534
原创 泛型
一、泛型的基本概述1,泛型的由来在JDK1.4版本之前,容器什么类型的对象都可以存储。但是在取出时,需要用到对象的特有内容时,需要向下转型。 但是对象的类型不一致,导致向下转型时发生ClassCastException异常。 为了避免这个问题,只能主观上控制,往集合中存储的对象类型要保持一致。 在JDK1.5以后解决了该问题,在定义集合时,就直接明
2015-10-19 17:41:56
443
原创 集合框架的基本操作
一、概述1、为什么会出现集合类?面向对象语言对事物的描述都是以对象的形式,为了方便对多个对象的操作,就需要对对象进行存储,集合就是存储对象最常用的一种方式。2、数组和集合类都是容器,有什么区别呢?1,数组长度是固定的,集合长度是可变的。 2,数组可以存储对象,也可以存储基本数据类型,集合只能存储对象。集合可以存储不同类型的对象。 3、集合体系collect
2015-10-19 17:13:05
940
原创 字节流字符流的使用
一、基本概念和分类 字节流的抽象基类 InputStream,outputStream字符流的抽象基类 Reader,Writer二、数据的读写1,将数据写到文件当中,使用字节输出流。FileOutputStreamwrite(byte[] b)将b.length个字节从指定byte数组写入此文件输出流中 File dir = new File("tem
2015-10-19 09:18:30
1116
原创 IO流与File对象基本操作
一、IO流1、IO流中的基本概念IO流:用来处理设备之间的数据传输。设备:各种存储设备IO:用于处理设备上的数据的技术。设备:内存、硬盘、光盘等流:系统资源,window系统本身就可以操作这些设备,各种语言只是使用系统平台上的这个资源。并对外提供了各种语言自己的操作功能,这些功能最终调用的是系统资源。流使用完一定要释放!流的分类:字节流与字符流 操作的数据
2015-10-17 15:31:03
723
原创 多线程中多生产多消费问题
一、多生产多消费实例多线程中多生产多消费问题的解决有助于更好的理解多线程的使用。现在通过实例来说明多线程中需要注意的地方。/** * @author zqx 描述资源 */public class Resource { private String name; private int count = 1; // 定义flag标记 private boolean flag;
2015-10-06 17:35:32
1888
原创 同步的进一步了解
一、同步函数同步函数:用同步关键字(synchronized)对函数进行修饰。则函数具有了同步性。同步表现形式有两种:1,同步代码块2,同步函数二、同步函数的锁同步函数需要被对象调用,调用的对象不确定,用this来表示。同步函数使用的锁就是this。验证同步函数使用的锁是this验证思路:启动两个线程,一个线程负责执行同步代码块(使用明锁),另一个线程负责执
2015-10-01 16:20:56
451
原创 多线程中的同步
一、多线程的安全问题分析下图可知,当tickets为1的时候,Thread-0执行run方法,在执行tickets--之前,Thread-1也执行了run方法。此时就会产生错误1、多线程安全问题产生的原因:1、线程任务中有处理到共享的数据。2、线程任务中有多条对共享数据的操作。总结:一个线程在操作共享数据的过程中,其他线程参与了运算,操作了共享数据,造成了数据的错误
2015-09-30 23:19:41
522
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人