技术研讨
devotemyself
感谢上帝
展开
-
unsupported message type: String (expected: ByteBuf, FileRegion)
是关于netty报的错,报错的原因是你在控制台里输入的类型,没有对应的handler做处理,比如我个人,只写了自定义类“MessageLiang”的handler,但是从控制台写入的类型是string,就会报这个错,解决的方案有两个,添加一个handler入参是string,或者在Scannerscanner=newScanner(System.in);报错unsupportedmessagetypeString(expectedByteBuf,FileRegion)...原创 2022-07-20 11:49:22 · 1611 阅读 · 0 评论 -
比较简单的策略模式实战
package com.fy.camunda.back.service;/** * @ClassName TimerDefinitionProcess * @author: maliang * @Description 处理接口 * @date 2022/2/8 9:21 * @Version 1.0版本 */public interface TimerDefinitionProcess { String Process(Integer value);}package com原创 2022-02-08 10:56:06 · 181 阅读 · 0 评论 -
微信,native下单功能
表现层package com.fy.staffapi.app.controller;import com.fy.common.protocol.JsonResult;import com.fy.staffapi.service.ITransactionsService;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springf原创 2021-10-19 14:33:11 · 313 阅读 · 0 评论 -
当在虚拟机里安装完无法访问ui页面
当在虚拟机里安装完无法访问ui页面时,不要改变网络适配器,nat就可以,应该是防火墙未关闭,yum install iptables-servicessystemctl stop firewalld原创 2021-08-29 21:48:54 · 2570 阅读 · 0 评论 -
记录一次安装hbase过程中遇到的bug(Error: A JNI error has occurred, please check your installation and try again )
是安装完zookeeper,flume以后,发现hbase无法启动,报错信息如下Error: A JNI error has occurred, please check your installation and try againException in thread "main" java.lang.NoClassDefFoundError: org/apache/zookeeper/KeeperException at java.lang.Class.getDeclaredMet原创 2021-08-27 21:51:19 · 338 阅读 · 0 评论 -
关于springboot整合neo4j图数据库实现增删改
第一步,引jar包<dependency> <!-- 这个是手写表达式使用的包 --> <groupId>org.neo4j.driver</groupId> <artifactId>neo4j-java-driver</artifactId> <version>1.5.0</version></dependency><dependency> <!-- 嵌入式开发需要原创 2021-08-24 01:20:10 · 948 阅读 · 3 评论 -
关于多线程CompletableFuture的使用
CompletableFuture.runAsync(Runnable runnable);CompletableFuture.runAsync(Runnable runnable, Executor executor); CompletableFuture.supplyAsync(Supplier<U> supplier);CompletableFuture.supplyAsync(Supplier<U> supplier, Executor executor)runA原创 2021-06-25 16:42:20 · 616 阅读 · 2 评论 -
第二次递归
/** * 递归 查出口径下所有子节点口径 * * @param statisticalCaliber 父口径 * @return 子口径 */public List<StatisticalCaliber> getSonList(StatisticalCaliber statisticalCaliber) { // 如果没有子口径,就返回空集合 List<StatisticalCaliber> statisticalCalibers = statistic原创 2021-04-28 15:01:56 · 114 阅读 · 0 评论 -
第一次在项目里用递归
/** * 递归 找到所有以下的数据 * * @param id 父id * @param list 初始化的数据,用于承接返回值 * @return 子数据 */public List<StatisticalCaliber> getSon(Long id, List<StatisticalCaliber> list) { List<StatisticalCaliber> koujing2 = statisticalCaliberService.原创 2021-04-20 19:19:18 · 68 阅读 · 0 评论 -
动态数据库增删改查增强版
实体类package com.phone.entity;import lombok.Data;import lombok.ToString;@Datapublic class MyDatasource { private String driverClassName; private String db; private String username; private String password; private String ip; private S原创 2021-04-17 18:15:20 · 122 阅读 · 0 评论 -
动态查询数据库
只是简单写了一个demo版本,实际应用的时候,可以使用环切,将datasources使用map缓存起来,不需要每次都创建对象。-----------------maven---------------------<dependencies> <!-- spring常用jar包--> <dependency> <groupId>org.springframework.boot</groupId>原创 2021-04-16 11:45:22 · 464 阅读 · 0 评论 -
前端使用nginx部署项目主要需要修改的几个地方
今天头一次用nginx部署前端项目,磕磕绊绊,记录一下,1,首先进入前端项目里,如果已经压缩过可以省略,如果没有省略,就需要1)首先安装npm和node.js2)然后在前端项目根目录执行npm install,是下载依赖包3)npm run build,是打包,推荐使用cnpm,执行完成后,项目里会生成一个文件夹dist2,下载nginx以后,解压1)把上边生成的文件夹dist放到nginx文件下的html文件夹2)找到nginx.conf,路径是nginx-1.19.9\conf\ngin原创 2021-03-31 17:06:01 · 779 阅读 · 0 评论 -
jdk8的map新增api
package com.phone.test;import java.util.ArrayList;import java.util.Collection;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.stream.Collector;import java.util.stream.Collectors;import java.util.stream.Stream;原创 2021-03-18 13:56:14 · 151 阅读 · 0 评论 -
最简单的单元测试
package com.monkey.Test;import com.monkey.Application;import com.monkey.service.ITest1Service;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.con原创 2021-02-12 20:55:55 · 95 阅读 · 0 评论 -
关于mybatis-plus整合oracle时间查询的bug
关于oracle时间查询的bug最近终于离开了 洲际铸件订单网那个公司,来到了沈阳的华晨宝马的铁西区工厂工作,这回牛逼了哈哈,不用加班了,就是离家有点远,每天坐班车得一个多小时通勤,想起今年前半年的996,衷心劝解正在996里挣扎的朋友们,即使没工作没收入也不要996,是真的伤身,我从疫情回来的这半年,心脏是心肌缺血了,肾也有点虚了,再吃中药,不说家常了,说bug,我以前用的一直是mysql,所以遇到这个bug有点懵 org.mybatis.spring.MyBatisSystemException:原创 2020-10-26 11:26:06 · 2517 阅读 · 3 评论 -
分布式事务
只记录二种常见的,关于mp的,不太稳定就不记录了1 tcc事务 也是 分阶段事务第一阶段 try 冻结数据第二阶段 confirm 减数据第三阶段 rollback 回滚比如一个用户 账户 1000元 一个订单 库存 50个 用户买了一个第一阶段在用户基本信息表里 多加一个字段是冻结金额 就是 1000 500 冻结了 五百订单 50 个 冻结了 1 个 就是 50 1第二阶段扣除 500 0订单 49 0如原创 2020-08-06 20:07:20 · 126 阅读 · 0 评论 -
关于工具类,获取各种时间和判断抛异常的
好久没更新了 项目经理给了很多活 我还得996干活 做了一个小小的工具类 有用的就c走package com.ruoyi.common.utils;import com.ruoyi.common.exception.BusinessException;import java.time.LocalDateTime;import java.time.ZoneId;import java.time.format.DateTimeFormatter;import java.time.te原创 2020-06-20 14:09:39 · 240 阅读 · 0 评论 -
一些统计的sql,按月份,季度,半年,年份等
按半年统计SELECT count( 1 ) num, (CASE WHEN MONTH ( vip_begin_time ) <= 6 THEN CONCAT( DATE_FORMAT( vip_begin_time, '%Y' ), '上半年' ) ELSE CONCAT( DATE_FORMAT( vip_begin_time, '%Y' ), '下半年' ) END ) dateFROM vip_operate_log WHERE DATE_FORMAT( vip_b原创 2020-06-12 13:27:29 · 1507 阅读 · 2 评论 -
我的netty之旅(4)
关于nio,其实就是单线程的阻塞式io流,但是传统的io流都是单向,out或者in,在netty中有了一个全新的类就是buffer, buffer有六种,对应java的除了bool的其他类型,而且是双向的,既可以是写入也可以是写出,在buffer接口中有三个重要的元素,capacity,limit和position,position相当于左边,index, capacity是整个容器的容量,limit是可使用的容量,有flip方法可以控制反转,...原创 2020-05-25 10:45:54 · 92 阅读 · 0 评论 -
关于gradle的下载,安装,环境配置,软件配置和使用
我在学习netty的过程中,需要学习gradle,但是学了好几遍都没有成功,网上很多教程,但是到最后发现都特么是有坑的教程,今天是我试了十多次以后终于成功了,为了以后别人再学习gradle的时候少走弯路,我记录以后,也给后人指点一下明路吧,我从头开始重新安装一下,希望能作得更完善第一步进入官网 https://gradle.org/好了,目前为止第一步就算完成了...原创 2020-05-21 10:18:50 · 365 阅读 · 2 评论 -
grpc-java私服代码
今天下载代码发现grpc-java的代码网速太慢了。所以在我的私服上传了一份,如果有需要可以来我这里下载,进入window的dos窗口输入命令就可以了git clone http://101.201.143.81:10080/maliang/grpc-java.git原创 2020-05-13 15:39:15 · 129 阅读 · 0 评论 -
java利用freemark和itext出pdf文件
第一步导包<!--pdf生成工具类--> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.4.2</version> </dependency> <dependency> <groupId>com.itextpdf.tool原创 2020-05-13 11:11:47 · 396 阅读 · 0 评论 -
git常用命令,subtree命令
// 托管git管理git init// 添加本次commit文件git add XXXX.txt// 提交commit 这个是提交全部 git commit -am '提交信息'// 这个是提交一部分git commit -m '提交日志' XXX.txt// 添加git路径git remote add origin http://ip:10080/channelB.git// 推git push -u origin master// 比较区别git diff XXX.txt原创 2020-05-11 17:47:32 · 238 阅读 · 0 评论 -
密码加密的方法
第一种,使用hutool第一步导入pom<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.1.19</version></dependency>这个...原创 2020-05-07 17:03:53 · 961 阅读 · 0 评论 -
我的netty之旅(2)(ProtoBuf)
学习过程中,需要使用proto,这个是谷歌的一个软件,直接到github上下载即可我是github网址然后如果想下载软件,就是我是软件下载网址下载完软件以后解压一下,再配置一下环境变量就可以用了,path里配置完环境以后cmd输入proto --version就知道生没生效了,然后是在项目里添加file文件.proto结尾syntax = “proto2”;package com.p...原创 2020-05-07 11:07:42 · 97 阅读 · 0 评论 -
linux安装杀毒软件
yum -y install clamav clamav-daemon clamav-freshclamsudo freshclam 升级数据库sudo clamscan / 扫病毒sudo clamscan --remove / 扫描并清理病毒文件原创 2020-04-30 21:04:26 · 1300 阅读 · 0 评论 -
关于Filter,interceptor和aop横切面的使用
最近公司的活不太忙,学习netty之余又复习了一下过滤器和拦截器的区别,多余的话就不说了,只说我认为比较重要的几点,过滤器是实现filter接口,是jdk自带的功能,只生效一次,而拦截器是spring的功能,是interceptor,可以环绕,是通过aop原理实现package com.filter;import java.io.IOException;import javax.serv...原创 2020-04-29 13:45:44 · 154 阅读 · 0 评论 -
我的netty之旅(1)
package com.almond;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.Channel;import io.netty.channel.EventLoopGroup;import io.netty.channel.nio.NioEventLoopGroup;import io.netty....原创 2020-04-29 11:00:57 · 99 阅读 · 0 评论 -
redis实现分布式锁代码展示
package com.test;import java.util.concurrent.TimeUnit;import org.apache.tomcat.jni.Lock;import org.redisson.Redisson;import org.redisson.api.RLock;import org.redisson.config.Config;import org....原创 2020-04-16 20:53:37 · 118 阅读 · 0 评论 -
微信公众号service全部代码
package com.ruoyi.mobile.service.impl;import java.io.IOException;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.servlet.http.HttpSession...原创 2019-12-11 16:12:54 · 406 阅读 · 0 评论 -
微信公众号controller全部代码
package com.ruoyi.mobile.controller;import java.io.PrintWriter;import java.util.Enumeration;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.servlet.http.HttpSe...原创 2019-12-11 16:12:09 · 154 阅读 · 0 评论 -
jdk8函数式编程等特性代码示例
//初始化List数据同上List list = InitData.getStudent();//使用map方法获取list数据中的nameList names = list.stream().map(Student::getName).collect(Collectors.toList());System.out.println(names);Map<String, Object...原创 2020-03-20 09:37:52 · 129 阅读 · 0 评论 -
多线程
关于多线程的实现方式,个人的看法,往后会逐步完善1,使用synchronized,但是这种方式效率稍微底下,但是既有可见性又有读写安全性2,使用AtomicInteger这部分类型的数据做运算,缺点是此数据不可和其他判断同时使用,不然还是线程不安全3,还有一个需要注意的是如果线程处理的时候抛异常会导致全部线程都释放,数据就乱了,所以一定要做好try catch准备...原创 2019-11-03 12:34:50 · 140 阅读 · 0 评论 -
微信发送模板信息代码
@Override public void sendWechatShort(Integer memberId, String url, String templateId, String value1, String value2, String value3, String remark) throws Exception { WeChatBean w = new We...原创 2020-03-09 12:17:32 · 326 阅读 · 0 评论 -
微信支付功能(尽量简化,尽量少用工具包)
@Value("${spring.weChat.mchAppid}") private String mchAppid; @Value("${spring.weChat.mchid}") private String mchid; @Value("${spring.weChat.key}") private String key; @...原创 2020-03-05 14:56:19 · 87 阅读 · 0 评论 -
关于下载流的设置
很多地方有下载流,demo的写法一般是new FileOutputStream( new File( "C:\\data\\3.pdf" ) 但是这样限制了下载位置,也不灵活,修改成返回的流形式更合理,像这样OutputStream out = new ByteArrayOutputStream();PdfWriter mPdfWriter = PdfWriter.getInstance...原创 2020-02-26 10:39:32 · 320 阅读 · 0 评论 -
rabbitmq使用流程规划
rabbitmq其实跟activemq很相似,总共三种模式,1直接模式,2分裂模式,3主题模式1的使用方法和activemq一样,3是跟广播模式相似,但是能指定放给哪一些队列http://192.168.204.132:15672/#/queues 15672是查看平台的端口号 <dependency> <groupId>org.springframewo...原创 2020-02-08 19:44:31 · 235 阅读 · 0 评论 -
es
关于 es 主要是几点1 首先需要了解es和spring整合的功能,pom文件添加 org.springframework.data spring-data-elasticsearch 3.0.6.RELEASE 2,在dao的接口继承 `ElasticsearchRepository...原创 2020-02-02 16:18:01 · 106 阅读 · 0 评论 -
关于mongodb
关于mongodb,其实很简单,第一步,先熟悉一下黑窗口的Mongodb的命令符,但是基本没有什么用,需要注意的是格式都是bson,是json的一种变种第二步,就是学习一下java控制mongodb,是用mongodbclient的方式,用的时候到网上直接一搜就有第三步,是spring整合mongodb,就是在dao层,就是这种,很像springdatajpa,(1)添加jar包 &l...原创 2020-01-23 14:59:45 · 173 阅读 · 0 评论 -
短信验证码的代码
package com.zj998;public class CheckCode {public static void main(String[] args) { String string = String.valueOf(1000000 + ((long) (Math.random() * 1000000))); System.out.println(string.substrin...原创 2019-06-03 13:18:22 · 187 阅读 · 0 评论