JAVA
文章平均质量分 60
微笑い一刀
学海无涯苦作舟
展开
-
IM框架(单体项目版)
码云地址:https://gitee.com/yuanmaxinxi/villa_im_sdk.git支持通信协议: tcp/udp/ws支持数据交互协议: json/protobuf支持qos策略,防重防丢失支持事件机制,可以在事件中阻断框架默认行为,或记录消息和离线消息等还需完善的功能:1. 阅后即焚的一些交互逻辑,当然阅后即焚消息对于IM框架来说可能不需要做额外处理2. 端对端加密,端对端加密可能需要添加type来区分交换秘钥等这些操作,当然IM框架可能不需要做额外处理,.原创 2021-12-18 16:14:33 · 1338 阅读 · 1 评论 -
java版远程桌面控制(简约版)
这个版本是通过截取桌面图片来显示远程桌面,有一个很明显的问题就是图片大小,我尝试过一些方式,但是效果都不太好,所以准备放弃这种方式进行最终实现,具体说明下我使用了那些方式去缩小图片大小...1. 直接使用压缩工具Thumbnails来压缩宽高和质量,这样确实能压缩图片大小,客户端压缩成一半宽高,控制端再放大两倍,这样确实可行,但是图片模糊,有点像向日葵软件的免费版,最模糊的那种状态2. 将图片进行灰化,就是去除彩色,这样也确实可以,但是结果也就是没有了彩色....,看久了受不了3. 想通过Buf原创 2021-12-18 15:44:24 · 3731 阅读 · 2 评论 -
AES-GCM加密 java和js(VUE)端
java端:最终处理时并没有按照常规转为base64和将偏移量iv一起放入加密字符串,iv只是按照key截取前12位来获取/** * AES加密 * @param data 需要加密的数据 * @param key 加解密的对称密钥 * @return 加密字符串 加密失败返回null */ public static String encrypt_AES(String data,String key){ if(Util.is原创 2021-12-17 14:17:45 · 3877 阅读 · 9 评论 -
im消息防重和防丢失以及时序的思路
以下六步完成后就能做到消息防丢失案例:客户端A发送消息给客户端B,消息内容任意 如: 你好。交互流程如下图所示:1.客户端A发送请求包到服务器这个请求可能会导致丢包,所以前端需要维护一个消息发送队列,如果没有收到2的服务器ack包,则需要重发。这个队列应该是一个数组,多条消息都需要做同样的事2.服务器给客户端A发送应答包这个ack包同样可能会丢包,那么跟1丢包的操作一样,需要对消息进行重发。那么就会引起另外的问题,就是消息重复,因为是2丢包,对于服务器来说是收到了1中的消息,只是回复原创 2021-09-09 12:05:21 · 1452 阅读 · 0 评论 -
java代码生成器 模型|dao|service|controller
需求:1. 当设计好数据库之后能够一键生成一些重复的代码,光是CRUD都能省很多时间,让咱们程序员只负责业务岂不快哉。所以生成器需要能生成常用的增删改查2.项目过程中很有可能会修改表字段,除非前期工作做得非常好,有人创建表的时候会预留一些字段,但是我的习惯是 这些字段只有项目已经上线之后才使用实现流程:一、 准备工作1. idea 其实eclipse也可以 无所谓2.maven 因为需要打成jar包,maven比较简单,用jdk打包也行 无所谓3.数据库驱动包4.项...原创 2020-06-17 20:21:28 · 1324 阅读 · 2 评论 -
JAVA原生DOM解析XML
DOM需要把整个XML放进内存中,如果数据量少没有什么影响,如果数据量太大,将会给服务器带来很大的负担。下面是一个XML的实体类Linkmanpublic class Linkman { private String id; private String name; private String address; private String email; public Str...原创 2018-10-26 14:29:32 · 4320 阅读 · 0 评论 -
发邮件功能在本地能用,在阿里云服务器不能使用
这个原因是因为阿里云将默认的邮件发送端口25封闭了,导致请求发送不出去解决方案是将邮件代码发送协议改为SSl协议,并使用465端口原创 2018-11-05 15:09:23 · 832 阅读 · 0 评论 -
JAVA编写还款提醒短信的时间判断
规则如下:借款截止日期、首期的还款日期、还款日期的计算规则:计算原则为算头不算尾,借款起始日期当天就算一天,比如借款期3个月,若借款起始日期为2018.11.11,首期的还款日期则为2018.12.10;从借款开始日期的”下个月同一天的前一天”为首期的还款日期,之后每间隔一个月就是每期的还款日期,在实际中,还款日期受月小影响有例外情况,比如借款期为3个月:若借款日期为2018....原创 2018-11-28 22:30:07 · 1953 阅读 · 0 评论 -
freemark标签介绍
https://www.cnblogs.com/duke-cui/articles/5560257.html这里记录下一个比较详细的博客,应该算比较详细了转载 2018-12-06 12:28:00 · 446 阅读 · 0 评论 -
SpringBoot+ueditor整合记录
不得不写这个文章,因为好久没有被坑这么久了,先说说问题,ueditor的加载这个应该很简单,只要导对js文件就行。主要说一下图片后台配置的问题后台使用的springboot框架,前台用的hui,hui中有ueditor插件,或者自己下载导入也行。重点说这几个注意事项。1.ueditor.config.js中2.切记是"/config",而没有上级路径,对于的Controller如下...原创 2018-12-04 00:23:23 · 732 阅读 · 2 评论 -
Spring+Redis(分离项目,并没有让Spring管理Redis)数据缓存
项目背景:一个SSM项目,然后使用Redis做数据缓存,但是Redis是自己在管理,并没有交给Spring。Redis在项目中的使用流程如下:1.使用Jedis管理Redis,使用了JedisPool连接池。2.每次操作后都需要将Redis链接释放,每次操作前都需要在连接池中获取链接。其实这个跟Spring管理JDBC连接有点类似,只是Spring管理连接的作用域是一次请求(默认,可修...原创 2019-03-15 01:45:47 · 271 阅读 · 0 评论 -
SSM项目后期添加数据权限设计
一个SSM平台,当初设计的时候没有想着做数据权限,以为光是按钮级权限就足够,但是后期随着业务的扩展,其他第三方公司需要使用我们的数据后台,而且可能公司有多家,每家还有多个部门,岗位之类的。 之前的按钮级权限采用通用设计,五张表,用户表--用户角色中间表--角色表--角色资源中间表--资源表。ER图标如下: 数据权限对上面的几张表改动不大,多了这么几张表。应用数据模块...原创 2019-04-30 01:39:13 · 895 阅读 · 0 评论 -
JAVA线程等待及唤醒案例
案例:子线程循环10次后,主线程循环5次后再让子线程循环10次,如此重复10次,请编写代码实现。实现代码如下:public class ThreadBox{ private boolean flag = true; public synchronized void main() { while (!flag) { try { this.wait(); } ca...原创 2018-10-22 15:36:27 · 779 阅读 · 0 评论 -
JAVA-UDP的简单运用
import java.net.DatagramPacket;import java.net.DatagramSocket;import java.util.Base64;public class Server { public static void main(String[] args) throws Exception { //创建UDP服务器对象 DatagramSoc...原创 2018-10-22 10:37:06 · 154 阅读 · 0 评论 -
JAVA中的位运算符
如果在面试中被问到什么运算符的性能最高,那么一定是位运算符,因为直接操作二进制位,比其他运算快很多,那么位运算符有哪些呢?运算符 符号 介绍 按位与 & 两个相同的位都为1,结果才为1,否则结果为0 按位或 | 两个位只要有一个为1,那么结果就是1,否则就为0 取反 ~ 除符号位外1变0...原创 2018-09-15 10:41:06 · 155 阅读 · 0 评论 -
SpringBoot 启动时报ClassNotFoudException
开发环境: 1.jdk1.8 2.maven3.5 3.eclipsepom.xml配置如下<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w...原创 2018-03-14 10:11:43 · 3937 阅读 · 0 评论 -
SpringBoot 访问出错Whitelabel Error Page
启动成功,但是访问出错,找不到对应资源。在网上找到的解决方案:原因是项目结构的问题出错时的项目结构如下:解决之后的结构:将启动类移到了项目跟包之下 如果目录结构正常,但是还是访问错误。可能原因:1.可能是访问的资源是一个视图资源,也就是返回值类型是ModelAndView的方法,但是没有导入freemark包,或者项目是热部署,但是修改了pom.xml没有重启。po...原创 2018-03-14 10:23:41 · 655 阅读 · 0 评论 -
Springboot2.0 HelloWorld(一)
准备工作或者说我的环境:Eclipse:Eclipse Java EE IDE for Web Developers.Version: Oxygen.2 Release (4.7.2)JDK1.8Maven3.5Eclipse STS插件,安装步骤Eclipse-->Help-->Eclipse maketplace-->popular或者search搜索-->选择sts ...原创 2018-04-08 10:01:21 · 1430 阅读 · 0 评论 -
SpringBoot2.0热部署(二)
SpringBoot2.0的热部署只需要添加如下pom配置<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>provided</...原创 2018-04-08 10:07:19 · 1010 阅读 · 0 评论 -
SpringBoot+FreeMaker整合(三)
流程目录1.添加相关jar配置2.添加模板3.修改控制器HelloWorldController4.修改模板helloworld.ftl5.启动测试1.添加相关jar配置<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-st...原创 2018-04-08 10:27:44 · 463 阅读 · 1 评论 -
SpringBoot2.0+Mybatis+Freemaker(四)
流程目录添加Mybatis和mysql的相关jar配置添加数据库四元素和Mybatis相关配置添加表,模型,DAO接口,Service,Controller,模板添加模板启动测试添加Mybatis的相关jar配置<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifact...原创 2018-04-08 11:50:59 · 454 阅读 · 0 评论 -
Springboot细节
1.热部署配置pom.xml<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>provided</scope> <o原创 2018-03-26 16:53:53 · 198 阅读 · 0 评论 -
Springboot整合shiro错误记录
搞了一天,遇到大大小小的问题,参考了无数前辈的资料,最后貌似走通了。教程就不放了,放两个我遇到的问题package com.xxx.config;import java.util.LinkedHashMap;import java.util.Map;import org.apache.shiro.mgt.SecurityManager;import org.apache.shiro.s...原创 2018-03-27 17:47:34 · 2824 阅读 · 0 评论 -
JAVA计算器案例
原创 2018-07-26 16:10:16 · 396 阅读 · 0 评论 -
JAVA8第一次使用JAVAFX问题Access restriction: The type 'Application' is not API (restriction on required lib
使用Eclipse第一次使用JDK8来构建javafx遇上编译型错误:Access restriction: The type 'Application' is not API (restriction on required library 'E:\JAVA\jdk1.8\jre\lib\ext\jfxrt.jar') 解决方案:项目名称右键-->Build Path-->...原创 2018-08-01 17:03:25 · 6056 阅读 · 4 评论 -
原码、反码、补码
在计算机中,正数使用原码进行存储,而负数使用补码进行存储。那么什么是原码?,什么是补码呢?通过下面文章可以了解原码、反码、补码原码原码就是一个数字的二进制表示形式,但是需要区分数据类型比如byte b = 1;对应原码:00000001 一共8位,高位用0占位比如int i = 1;对应原码:00000000000000000000000000000001 一共32位...原创 2018-09-15 10:32:50 · 404 阅读 · 0 评论