java
文章平均质量分 63
CJ点
学以致用
有疑问欢迎 邮箱讨论
chenjunwei111@outlook.com
展开
-
SpringSecurity Unsupported algorithm ‘xx256‘
使用我们标准的基于属性的配置,我们可以进一步设置我们期望令牌签名的算法。当授权服务器使用RS256 以外的算法对令牌进行签名时,通常需要这样做。让我们继续通过添加jws-algorithm属性来更改配置:spring: security: oauth2: resourceserver: jwt: // ... jws-algorithm: ES256我们还可以将我们的资源服务器配置为信任多种算法进行签名验...原创 2022-03-25 10:17:08 · 1019 阅读 · 1 评论 -
若依单体项目拆分微服务-全过程分享(带源码)
之前写过一篇,这次详细再说下若依微服务版改造 拆分多仓库(带源码)_CJ点的博客-CSDN博客一、前言目标:若依的单体项目转换成分布式部署效果:结合springCloud、Nacos配置中心模式,实现微服务化拆分难点: 原项目为若依脚手架单体项目还带一些业务模块,无法简单复制粘贴迁移 基础权限表结构带有公司业务字段(创建人ID等) 维护成本在,不能过多拆分。(容易拖死自己) 原项目mybatis-plus结合的太深(自动注入创建ID等),分布式原创 2022-02-24 10:40:02 · 4686 阅读 · 0 评论 -
若依微服务版改造 拆分多仓库(带源码)
参考了若依微服务架构,觉得可用性非常大,但是还是不能完全符合公司的使用性,花了一些时间进行改造。最终的效果,每个大模组单独一个仓库、父级pom单独一个仓库管理、system单独一个仓库管理。还去掉了一些无关紧要的模组。先看看原来的若依结构。官方文档:介绍 | RuoYicom.ruoyi ├── ruoyi-ui // 前端框架 [80]├── ruoyi-gateway // 网关模块 [8080]├── ruoyi-auth原创 2022-01-27 13:57:07 · 1465 阅读 · 0 评论 -
Seata-AT模式案例分享
AT模式在上次说到Seata的三个组成部分 TM、RM、TC。可以简单的分配下角色TM相当于业务代码逻辑、RM相当于持久层的JDBC数据库、TC就是seata单独部署的客户端。AT 说到底就是实现对资源操作的代理,并记录原先 & 变更后的状态,并用锁保证该数据的隔离性。在调用链中出现异常时,还原所有分支数据,达到分布式事务下的“原子性”。而AT模式下 的执行流程TM 开启分布式事务(TM 向 TC 注册全局事务记录); 按业务场景,编排数据库、服务等事务内资源(RM ..原创 2021-12-30 19:15:48 · 805 阅读 · 0 评论 -
Seata-tcc 材料分享
Seataa、是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。官方APISeata 是什么b、TCC 简单来说就是二段式的提交Try阶段、Confirm/Cancel阶段(TCC模式对AT来说使用和配置起来都比较麻烦一点,且对代码的侵入性高一点,就是说表的设计是需要考虑二段式的提交的一个思想,例如 “冻结“ 字段、“状态“ 字段)组成...原创 2021-12-30 19:15:00 · 271 阅读 · 0 评论 -
JAVA easyExcel 多sheet 导入导出Demo带源码
一、pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/m原创 2021-12-16 21:33:48 · 837 阅读 · 0 评论 -
Jgit 工具类 (代码检出、删除分支(本地、远程)、新建分支、切换分支、代码提交)
import org.eclipse.jgit.api.Git;import org.eclipse.jgit.api.ListBranchCommand;import org.eclipse.jgit.lib.Ref;import org.eclipse.jgit.transport.CredentialsProvider;import org.eclipse.jgit.transport.RefSpec;import org.eclipse.jgit.transport.UsernamePa.原创 2021-09-16 13:36:32 · 2265 阅读 · 1 评论 -
电商(一) 创建订单业务流程
一、背景商品需要调用供应商的接口来实现订单的创建在项目就存在两个订单,一个是供应商的订单、一个是项目自身的订单,实际就是一个订单二、流程https://www.processon.com/embed/611ca4261e0853164d2e3d02在从用户点击购买到用户点击支付 ,最后成功返回订单号接着支付流程,失败则回滚操作1、首先在商品页的时候点击购买,就需要开始校验库存、金额、邮费、收货地址等信息。2、没有收货地址的,则要重新选择,且选择收货地址后,还需要调用类似.原创 2021-08-18 15:29:28 · 3527 阅读 · 0 评论 -
RocketMq (一)安装及使用
一、Docker方式安装单机方式安装,参考:https://blog.csdn.net/weixin_36927395/article/details/111867976二、工具类import org.apache.rocketmq.client.producer.SendCallback;import org.apache.rocketmq.client.producer.SendResult;import org.apache.rocketmq.spring.core.Rock原创 2021-08-18 11:12:26 · 507 阅读 · 0 评论 -
SpringCould (六) Nacos设定配置及读取
目录一、编写nacos配置二、新建JAVA配置类三、调用方式四、使用场景五、注意事项一、编写nacos配置1、在指定项目服务的nacos配置中心,选择该服务的配置文件2、进入编辑,保存二、新建JAVA配置类import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Compon..原创 2021-08-18 10:46:12 · 1033 阅读 · 0 评论 -
SpringCould (五)分布式系统代码架构拆分
一、前言总结下最近以来SpringCloud分布式项目的代码架构和拆分原理,使用到的技术以及一些可用性比较高的工具。使用这种架构给我的感受是拆分的很细,代码之间的干扰性大大降低,但服务之间的Fegin方法调用,写起来也增加了一些工作量,如果说没有代码生成器的话,开发起来会比较累的。比如一个简单的接口出去就需要经过9个文件的代码编写。二、完整的项目路径在代码结构上,基于解耦这个准则。├── common // 工具服务│ └── core ...原创 2021-08-04 14:38:33 · 574 阅读 · 0 评论 -
Docker配置 Gitlab Jenkins java 项目自动化部署(三)VUE 前后端分离
目录一、前提环境1、nginx2、Docker3、gitlab4、jenkins二、配置1、vue项目准备2、代码上传gitlab3、创建宿主文件夹4、 创建Dockerfile5、创建nginx.conf6、Jenkins配置a、安装插件 nodejsb.配置全局工具配置c.新建任务d.源码管理c.构建触发器d.构建环境e.构建三、测试一、前提环境1、nginxhttps://blog.csdn.net/...原创 2021-03-31 19:15:06 · 535 阅读 · 2 评论 -
Docker配置 Gitlab Jenkins java 项目自动化部署(一)Gitlab
前提环境1、Dockerlunux服务内存至少有4G,安装教程自己百度下一、安装1、拉取镜像docker pull gitlab/gitlab-ce:latest2、创建宿主文件夹mkdir gitlabmkdir gitlab/configmkdir gitlab/datamkdir gitlab/logs3、启动docker run -d --name gitlab --restart always -p 9798:443 -p 44:22 .原创 2021-03-20 18:19:30 · 956 阅读 · 0 评论 -
IDEA 方法注释 自动获取返回值和传参
一、设置1、添加自定义注释快捷键2、注释内容* * desciption $params$ * @return $returns$ * @Author junwei * @Date $date$ $time$ */点击右边的edit variables 设置函数下面3个内容选择自带的函数,第一个params填入自定义的函数groovyScript("def result=''; def params=\"${_1}\".replaceAll('[\\\\[|.原创 2021-03-10 14:26:53 · 1968 阅读 · 1 评论 -
SpringCould Netflix常用组件及使用场景
目录服务的发现 —— Netflix EurekaEureKa-serviceEureKa-client服务的调用 ——Netflix Feign熔断器 —— Netflix Hystrix服务网关 —— Netflix Zuul分布式配置 —— Spring Cloud Config消息总线 —— Spring Cloud BusSpring Cloud SeataSpringCloud 现有两种版本,一是Netflix, 二是alibaba的。Netflix的.原创 2021-01-28 12:04:31 · 438 阅读 · 1 评论 -
Spring事务总结
参考:https://blog.csdn.net/cckevincyh/article/details/54962920事务传播:https://blog.csdn.net/qq_43354492/article/details/112692000事务隔离:https://blog.csdn.net/telundusiji/article/details/106502267一、原理Spring的注解式事务,其底层原理是由AOP实现的。二、传播性常用第一种。其余根据各自原创 2021-01-27 20:11:33 · 153 阅读 · 0 评论 -
Mybatis 实现原理
目录一、原理流程图二、 其余补充Mybatis三种的执行器SIMPLE方式REUSE方式BATCH三、常见问题一、原理流程图1、程序启动 读取配置文件mybatis-config.xml的内容2、sqlSessionFactoryBulider().bulid() 生成一个Configation 对象(里面带有配置文件的属性)3、通过configuration对象打开一个SqlSession对象4、sqlSession通过getMapper去读取mapp.原创 2021-01-26 16:51:50 · 499 阅读 · 0 评论 -
JAVA (list、set、map)时间复杂度和使用场景汇总
学习参考:https://www.cnblogs.com/alex-xyl/p/11460931.html 类型 底层结构 重复 null值 使用场景 备注 查询 删除 增加 List ArrayList 动态数组 可重复 LinkList 双向链表 可重复 ......原创 2021-01-21 13:16:34 · 6037 阅读 · 6 评论 -
JAVA底层 (三) TreeMap 红黑树
学习参考:https://blog.csdn.net/walkerkalr/article/details/81217294https://blog.csdn.net/qq_42253147/article/details/90452828TreeMap 是一个有序的key-value集合,它是通过红黑树实现的。 TreeMap 继承于AbstractMap,所以它是一个Map,即一个key-value集合。 TreeMap 实现了NavigableMap接口,意味着它支持一系列的导航方法。原创 2021-01-20 17:42:43 · 395 阅读 · 0 评论 -
SpringCloud (二) Eureka
目录一、简介二、组成三、功能EureKa-serviceEureKa-client四、集群学习参考简述:https://blog.csdn.net/CSDN_HELIU/article/details/93967504详细:https://blog.csdn.net/qwe86314/article/details/94552801一、简介Eureka 是由neflix公司开发的(服务发现)框架,尊从REST规范,且实现服务发现注册的主要功能。二、...原创 2021-01-18 22:44:58 · 238 阅读 · 0 评论 -
JAVA 底层 (二) ArrayList和LinkList
一、ArrayListArrayList 底层的数组结构一个数组如下图初始创建一个空的数组,添加一个元素后,大小变为10,扩容 按照1.5倍数自动扩容继承抽象类 abstractList<E> 重写get() add() 等方法接口List<E> 提供Lits 常用方法RadomAccess 一个标记接口,使使用该接口的类支持 快速随机访问Cloneable提供克隆方法Serializable提供序列化标识 (作用于流操作)优点:查询快...原创 2021-01-15 11:39:42 · 296 阅读 · 0 评论 -
JAVA 底层 (一) HashMap
HashMap 是在JAVA比较常用的一个对象,其底层实现原理 数组+链表的结构实现的一、原理以下简单图为例,当一个HashMap创建时 ,会创建一个空数组。当使用 put()方法时,也就是添加key-value 元素进去,底层是将key通过hashCode()方法 得到一个整数,作为数组的下标存放 元素,但当key的hashCode相同(即hash碰撞)就会在 相同的下标位置,在上一个的元素后添加,形成一个链表结构,且上一个存在元素是带有 下一个元素的指向。当使用get()方法获取..原创 2021-01-14 18:33:24 · 143 阅读 · 0 评论 -
JAVA 多线程(一)简单生产者和消费者
//仓库代码public class Depot { private int capacity; private int size=0; public Depot(int c){ this.capacity=c; } public synchronized void product(int count) throws InterruptedException { while(count>0){ i.原创 2021-01-07 16:16:57 · 128 阅读 · 1 评论 -
SpringCloud (一)基础框架搭建
根据https://blog.csdn.net/weixin_44448094/article/details/88535475自己操作了一下,可实现自己的源码//服务器端https://github.com/chenjunwei111/springCouldLearn//客户端1https://github.com/chenjunwei111/springcouldLearnCustom1//客户端2https://github.com/chenjunwei111.转载 2020-12-11 10:59:05 · 159 阅读 · 0 评论 -
JAVA CSV 导出
JAVA CSV 文件导出比较简单比使用sqlLoader 导出要慢一倍的,大体是在查询的机制上 耗了更多时间和 对数据进行组装也耗了时间但是不需要安装和配置一堆东西sqlLoad导出csv:https://blog.csdn.net/qq_37203082/article/details/110188164 /** * Description * @param fileNanePath 文件名称路径 D:/test1.csv * @param tableHea..原创 2020-11-27 16:13:23 · 252 阅读 · 2 评论 -
JSON 数据优化方案
因一些业务,需要从JAVA后端发送上百M的数据到前端进行渲染,从服务器到前端的传输时间不能多0.5秒从网上找过了网站感觉效果不大,这里也分享下自己的优化经验一、TOMCAT压缩机制目录一、TOMCAT压缩机制二、JAVA 过滤器压缩三、msgpack压缩技术四、ajax轮询机制五、返回数据格式 集合对象类型六、返回数据格式 数组类型Tomcat自带的一个压缩机制,可以数据进行压缩,压缩量可以让数据减少到20%左右,对带宽可以起到一个很好的效果,但在提速方面表现不佳,.原创 2020-06-10 11:19:27 · 1606 阅读 · 0 评论 -
JAVA基础(四)数据类型
数据类型一些整理及分类目录一、8大基本数据类型1、字节型2、短整型3、整型4、长整型5、单精度浮点型6、双精度浮点型7、字符型8、布尔型二、 引用类1、常用引用类2、引用类的使用方式三、数据类型转换1、隐式转换(自动类型转换)2、显式转换(强制类型转换)一、8大基本数据类型1、字节型字节型 ,单位:byte,...原创 2019-10-14 12:06:16 · 429 阅读 · 0 评论 -
JAVA基础(三)运算符
java 中常用的基本运算符和不大常用的运算符整理分类目录一、基本运算符一元运算符二元运算符三元运算符二、赋值运算符三、关系运算符四、位逻辑运算符五、运算符优先级一、基本运算符基本运算还分三种一元运算符算术一元运算一共有 3 个,分别是 -、++ 和 --。- 取反符号 取反运算 b=-a++ 自加一 先取值再加一,或先加一...原创 2019-10-14 11:36:44 · 412 阅读 · 0 评论 -
JAVA基础(二)变量、常量
目录一、标识符关键字二、常量三、变量四、直接量一、标识符关键字标识符由数字(0~9)和字母(A~Z 和 a~z)、美元符号($)、下划线(_)以及 Unicode 字符集中符号大于 0xC0 的所有符号组合构成(各符号之间没有空格)。标识符的第一个符号为字母、下划线和美元符号,后面可以是任何字母、数字、美元符号或下划线。合法标识符:date、$2011、_dat...原创 2019-10-12 11:15:55 · 463 阅读 · 0 评论 -
JAVA基础(一)JAVA语言历史及优缺点
经过自己一段时间学习、整理下来,发布出来也是相当于一次新的学习记忆JAVA由来:java 是由1995sum 公司推出的面向对象设计语言,2010被oracle收购,后一直由oracle维护2019年 最新java 去到13的版本目录JAVASEJAVAEEJAVAMEJAVA语言9大特点JAVASEJAVASE (JAVA Platfor...原创 2019-10-12 10:50:03 · 486 阅读 · 0 评论 -
axis2.0 服务器端和客户端搭建
存于世,必要拯救世界,希望的灯光也需要积累。记之已身,学以致用,欢迎转载,更多联系QQ:289325414一、创建maven项目eclipse(请参考)https://blog.csdn.net/qq_37203082/article/details/100557128ideahttps://www.cnblogs.com/zhangchengzi/p/9865546.htm...原创 2019-09-05 16:24:39 · 706 阅读 · 1 评论 -
Axis1.4 服务器端和客户端搭建
存于世,必要拯救世界,希望的灯光也需要积累。记之已身,学以致用,欢迎转载,更多联系QQ:289325414一、创建Maven-web项目eclipse(请参考)https://blog.csdn.net/qq_37203082/article/details/100557128ideahttps://www.cnblogs.com/zhangchengzi/p/9865546...原创 2019-09-05 15:55:40 · 1080 阅读 · 0 评论 -
eclipse 创建maven-web项目
存于世,必要拯救世界,希望的灯光也需要积累。记之已身,学以致用,欢迎转载,更多联系QQ:289325414一、创建maven-web项目创建好,目录如下还要把resources java代码文件夹弄出来项目右键-》Build Path选择第二个即可目录结构改变,在java 包下创建自己代码结构文件夹即可...原创 2019-09-05 14:20:38 · 208 阅读 · 0 评论 -
fastjson将Map对象和字符串进行转换
存于世,必要拯救世界,希望的灯光也需要积累。记之已身,学以致用,欢迎转载,更多联系QQ:289325414转载:https://blog.csdn.net/xlecho/article/details/81131561将对象转换成为字符串HashMap<String,Object> map=new HashMap<>(2);map.put("student...原创 2019-09-04 11:57:42 · 529 阅读 · 0 评论 -
mybatis,oracle存储过程返回结果集
存于世,必要拯救世界,希望的灯光也需要积累。记之已身,学以致用,欢迎转载,更多联系QQ:289325414Mapper层代码 <!-- 调用存储过程返回结果集 --> <select id="proTest" parameterType="java.util.Map" statementType="CALLABLE"><![CDATA[ call...原创 2019-07-30 10:39:27 · 578 阅读 · 1 评论 -
unicode码转中文
存于世,必要拯救世界,希望的灯光也需要积累。记之已身,学以致用,欢迎转载,更多联系QQ:289325414unicode码转中文--unicode码转中文import java.util.regex.Matcher;import java.util.regex.Pattern; /*** unicode码转中文* @param sourceString* @return...原创 2019-07-02 16:18:29 · 899 阅读 · 0 评论