朝花夕拾篇
文章平均质量分 68
智_永无止境
来和大家一起学习
展开
-
基于Netty的websocket的简单介绍
WebSocket」是一种在单个TCP连接上进行全双工通信的协议。「WebSocket」使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在「WebSocket API」中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。TCP连接是一种可靠的、面向连接的网络通信协议。它通过三次握手建立连接,然后通过数据包的传输和确认来保证数据的可靠性和顺序性。原创 2024-05-06 16:23:13 · 1272 阅读 · 5 评论 -
Sprinboot聚合项目归荑
在创建springboot项目时,都会有一个Main方法。如果将Springboot项目设计成聚合项目时,我们是不是要把所有的子项目都按照Springboot的方式创建呢?如果是会出现什么问题,以及我们怎么解决呢?如果我们使用maven项目+Springboot项目混合使用,会有什么问题呢?这些都是今天我们要探讨的问题。原创 2023-04-19 15:52:06 · 788 阅读 · 0 评论 -
TreeMap根据value排序遇到的问题及分析
1、前言针对集合排序,我们通常都会借助具有排序功能的集合,来处理我们的数据。比如ArrayList,TreeMap等。但是使用不同的排序工具,可能会遇到不同的问题。2、案例分析2.1 需求:根据HashMap中的数据,按照value排序。例如:/*排序之前的结果: key:value = a:3 key:value = b:5 key:value = c:1 key:value = d:4 key:value = e:2要求输出结果为: key:value = c:1.原创 2021-08-18 17:21:35 · 1325 阅读 · 0 评论 -
springboot集成webSocket实现网络实时通讯
1、前言 在很多业务场景中,对实时数据要求比较高,我们就不能采用轮训拉取的方式来获取数据了。就可以采用websocket的长链接的形式,实时有服务端或者客户端推送数据,已达到数据的实时展示。2、websocket简介SpringBoot官方推荐的基于STOMP实现,STOMP:即Simple Text Orientated Messaging Protocol,它是一个简单的文本消息传输协议,属于 WebSocket 的子协议, 提供了一个可互操作的连接格式,允许STOMP客户端与任意...原创 2020-08-04 16:37:46 · 3437 阅读 · 1 评论 -
IntelliJ IDEA的基本配置以及插件
1、前言终于放弃Eclipse,拥抱Idea了。idea的提示更友好一下,但是代码检查非常严格。同样的代码在eclipse上能跑起来,在idea上可能就会多一写编译的处理。可能是因为是新手,所以使用的时候有点障碍。对于新的开发工具,还是要尝试去玩玩的。这里记录下一些基础的配置,方便我们开发的使用。2、Eclipse 和Idea 的区别 不管哪一种软件,对于我们来说都是服...原创 2020-03-11 18:09:50 · 1164 阅读 · 2 评论 -
Springboot集成aop的简单使用
1、前言 之前看到别人写的代码,没有设置任何东西,发现结果值变化了。比如,插入和修改数据的时候经常记录操作人的信息。不用设值,入库就会有操作人的信息。还有其他一些日志、监控等。这都是采用了aop切面的方式。2、依赖引入<!-- 切面 --><dependency> <groupId>org.springframework.boot&...原创 2019-11-08 10:01:21 · 683 阅读 · 0 评论 -
springboot集成Mail邮件,发送邮件
1、前言 企业中,需要我们对一些数据进行监控,或者将数据导出发给指定的人。简单的通知采用的短信的形式,但是复杂的数据导出给其他人,就会采用邮件的方式。并且这样成本比较低。Spring框架本身提供了Mail的支持,当然目前流行的springboot框架对邮件的支持更加友好。下面以springboot集成Mail为例。2、引入依赖<!-- 邮件 --><de...原创 2019-11-07 17:31:17 · 931 阅读 · 0 评论 -
@Autowired(required=false)注入注意的问题
1、前言在使用spring开发过程中,我们基本上都是使用@Autowired这个注解,用来注入已有的bean。但是有些时候,会注入失败。当我们加上参数(required=false)就能解决。今天整理一个我在实际开发中的例子2、required属性@Autowired(required=true):当使用@Autowired注解的时候,其实默认就是@Autowired(required=true)...原创 2018-03-16 14:47:14 · 125981 阅读 · 7 评论 -
freemark的一个坑
1、前言习惯了jsp的我,遇上freemark,面对数据回显的时候,踩了这么一个坑。2、坑之描述数据渲染的时候,有时候我们需要配置文本编辑器,回显一段文本编辑器的内容,该内容包括了css样式和标签。在freemark回显的时候,系统会自动默认为是一个文本,自动加上字符串,导致页面无法解析。如:<!-- 文本内容 --><p>hello world</p> 正...原创 2018-04-09 13:32:53 · 542 阅读 · 0 评论 -
base64图片打成Zip包上传,以及服务端解压的简单实现
1、前言上传图片一般采用异步上传的方式,但是异步上传带来不好的地方,就如果图片有改变或者删除,图片服务器端就会造成浪费。所以有时候就会和参数同步提交。笔者喜欢base64图片一起上传,但是图片过多时就会出现数据丢失等异常。因为tomcat的post请求默认是2M的长度限制。2、解决办法有两种:① 修改tomcat的servel.xml的配置文件,设置 maxPostSize=...原创 2018-11-16 17:32:03 · 2401 阅读 · 0 评论 -
Eclispe开发,本地开发配置HTTPS协议证书
1、前言现在很多开发网站为了安全,会使用https协议。但是给开发带来了不小的麻烦,我们eclispe默认的协议是http协议,https协议的接我就会都请求不到,好烦人,只能盲开发。后台通过网上资料配置了本地证书就可以实现,但是按照网上教程配置之后总会有一些小问题,不能友好的访问。故此,笔者记录了一下自己配置的过程。2、使用工具SUN公司提供了keytool的工具,为我们解决了这个问...原创 2018-11-23 13:00:23 · 946 阅读 · 0 评论 -
使用shiro标签遇到的坑
1、前言使用shiro框架做权限控制是不错的选择,在使用shiro标签的过程中,是否会遇到一些坑呢。恰好笔者遇到了,在此记录一下。2、shiro标签坑的描述标签:<shiro:haspermission name="你的权限"></shiro:haspermission>当使用的标签具有层级关系的时候,就有可能掉坑里,并且出不来。例如:第一层级...原创 2019-03-18 10:34:28 · 3377 阅读 · 3 评论 -
Springboot项目对jsp页面的支持
1、前言Springboot项目的和maven项目的结构有所不同,如图:springboot项目在resources下面有两个包:static,templates,但是maven项目下没有。 springboot项目在src下的main文件夹是空的,但是maven项目下有一个webapp包以及webapp下的文件结构springboot推荐使用模板引擎比如:thymeleaf。th...原创 2019-10-08 16:55:08 · 584 阅读 · 0 评论 -
图片转化为base64及上传
1、前言 很多时候我们需要将图片转化成base64,并且上传。这里整理了一些关于图片转化base64的方法,方便以后使用。2、页面demohtml>head lang="en"> meta charset="UTF-8"> title>图片转化成Base64title>head>原创 2017-09-23 17:28:46 · 11295 阅读 · 2 评论 -
java使用Qrcode生成二维码(内嵌logo)
1、前言 整理一个使用qrcode.jar生成二维码的测试方法,以备后面学习使用。2、使用准备Qrcode.jar3、demo /* 生成二维码 */ @RequestMapping(value="/creatQrcode", method = RequestMethod.POST) @ResponseBody public Object原创 2018-01-04 16:45:21 · 3309 阅读 · 0 评论 -
jsp页面打jar包及其引用
1、前言 项目开发中,需要把一些公共页面抽取到公用的项目中,打成jar包全局使用,便于修改和维护。最常见的就是会把公用的方法或者实体类打成jar包,这种很好用,直接导入依赖,导包就完事了。但是页面的打包笔者开发的时候,搞了好久,终于搞定。记录一下,方便日后使用。2、页面的打包正确的打包方式,开发者可以像页面在项目中一样的方式去引用(js、css等同理)。jar工程只用两个主要的文件夹src原创 2017-10-25 09:59:15 · 15357 阅读 · 5 评论 -
比较器:Comparable和Comparator
问题引入 我们会经常会对集合排序,如果该集合存储的数据具有自然排序功能,我们就会直接使用Collections.sort()方法直接进行排序。但是如果存储的数据没有自然排序的功能,我们就需要自定义比较器来实现对集合需求排序。自定义的排序有两种,分别使用Comparable和Comparator两个接口实现。两种比较器的区别 第一:来源不同 Comparable属于java.lang包下原创 2017-02-07 17:57:09 · 400 阅读 · 0 评论 -
排序算法:冒泡和选择排序
引言 排序的算法其实很简单,平时使用的频率也不是很高,但是非常经典,重要的是这种算法的思想。排序算法的示意图 算法说明 冒泡排序: 冒泡排序的思想就是从最低端开始,比较相邻的两个数据,数据大的下沉,数据小的上升。这样比较一轮,最顶端的数据就是最小的。第二轮同样从最低端开始比较,比较到倒数第二个停止,以此类推直到所有的数据全部比较结束。则数据就会按照从小到大的顺序一次由上而下排列。原创 2017-02-08 15:31:02 · 290 阅读 · 0 评论 -
String的equals方法的一个小细节
前言 在比较两个String类型的数据时,通常会使用equals()方法。比较的两个字符串一般没有先后顺序,但是之前有人就说最好把常量现在前面,变量写在后面。一直不知道为什么,现在终于知道了…小demo//例:比较对象的一个属性是否是"hello",对象的属性用object代替object.equals("hello");"hello".equals(object);分析 上面两句在语法上没有原创 2017-02-10 17:40:30 · 535 阅读 · 0 评论 -
java类和对象的加载过程
问题引入 在学习java初期总会被Java的执行顺弄的一脸蒙逼,好在一点时间的积累之后,已经明白了程序执行的过程。现在总结一下,和大家分享。如有什么不对的地方,还请大家斧正!简单的小Demo class Zi{ static { System.out.println("Zi类静态代码块执行..."); } { ...原创 2017-01-20 15:26:09 · 626 阅读 · 0 评论 -
Map集合的遍历及比较
前言 在平时开发中,经常会遍历集合。三大集合List,Set,Map既可以使用Iterator迭代器遍历也可以使用高级for循环(for-each)遍历。下来我们主要来看看Map集合的遍历。Map集合遍历方式 //Map集合的遍历方式 public static void main(String[] args) { Map<String,String> map = n原创 2017-02-22 16:41:09 · 1036 阅读 · 0 评论 -
Integer类(包装类)的缓存
问题引入 对于包装类,我们都知道自动装箱和自动拆箱功能。笔者以Integer为例,比较Integer两个值大小的时候,我们会使用“==”还是包装类的equals方法呢?如果选择“==”比较的伙计要注意了….. 要说明的是-128到127之间的数据用两种的方法是没有问题的,但是这个范围之外就会有差异了,结果会不同。小demopublic class IntegerCachDemo {原创 2017-02-13 15:07:35 · 521 阅读 · 0 评论 -
springmvc 框架中的数据的绑定:@InitBinder&@DateTimeFormat()
1、前言表现层经常会接受页面表单的数据,springmvc框架提供了封装javaBean的功能,但是针对一些特殊的属性,则不会自动封装(比如java.util.Date类型),需要我们自行绑定。这里介绍两种解决的办法:@InitBinder&@DateTimeFormat()2、@DateTimeFormat()绑定Date类型@DateTimeFormat()实现数据的绑定比...原创 2017-04-27 17:19:31 · 2881 阅读 · 0 评论 -
LOG4J打印mybatis问题
1、前言在项目调试中,常常会发现获取数据库的数据。为了找原因,是否是SQL异常,我们就需要根据执行的SQL判断是不是有问题,从而解决问题。了解了一下log4j的配置,这里记录下来。2、log4J的依赖<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.原创 2017-04-28 14:34:01 · 793 阅读 · 0 评论 -
logback的简单使用
1、前言查了很多资料,都说logback的性能都要比log4j的性能要好,logback逐渐要取代log4j。今天对logback作一个简单的整理。2、logback的依赖坐标<!-- <dependency> <groupId>org.slf4j</groupId> <artifactId&...原创 2017-05-24 17:23:29 · 25190 阅读 · 3 评论 -
IdentityHashMap :key值可以重复的Map集合
问题引入 初学java的时候,Map集合给人留下的印象就是键值对{key=value}的存储方式。并且我们知道键值对的可以唯一。但是Map容器真的不能存储key值相同的数据吗?查询API才发现有这么一个实现类可以存储重复的key:IdentityHashMap。IdentityHashMap简介 IdentityHashMap类同样实现了Map接口,拥有Map集合的一切特性。key值同样需要原创 2017-02-06 16:53:57 · 4794 阅读 · 0 评论 -
针对iphone手机拍照片旋转90度问题解决
/* 1、图片上传的方法*/@RequestMapping(value = "/uploadPic", method = RequestMethod.POST) @ResponseBody public JsonResult upload(@RequestParam("file") MultipartFile[] files){ Boolean flag原创 2017-06-28 14:52:08 · 3782 阅读 · 0 评论 -
spring容器启动,初始化某个方法(init)
1、前言 很多时候,我们需要在项目启动的时候,就要完成某些方法的执行。今天整理了一个简单的方法,使用spring容器中bean的属性:init-method2、代码/* 初始化的类。这里不需要添加任何注解*/public class InitData { @Autowired private UserService userService; /*原创 2017-10-13 15:41:11 · 12765 阅读 · 0 评论 -
FORM表单的几大属性
FORM表单的几大属性问题引入 在做一个活动支付项目的时候,提交订单(form表单)跳转支付页面发现没有反应。经过断点排查发现断点也进了,不报错。但是返回的就是空白页,让人很纠结。 进过反复测试,才发现是杀毒软件拦截了form表单的请求。如何来解决这个问题呢?下来我们来看看Form表单的属性就会明白了。FORM的属性 method属性:规定用于发送 form-data 的 HTTP原创 2016-12-28 16:47:46 · 18428 阅读 · 0 评论