自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 JetLinks物联网平台源码解读

JetLinks 物联网平台源码解读BrokerEventBusDefaultDeviceOperator功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入BrokerEventBusJetLinks的消息总线,对(topic和消

2024-06-04 03:47:20 458

原创 DNS搭建和使用

DNS搭建和使用

2023-09-29 21:49:35 350

原创 gitlab搭建

学习devops,需要搭建一个仓库。

2023-09-06 20:30:23 104

原创 k3s 搭建使用

轻量级k3s搭建使用

2023-09-05 15:11:48 357

原创 WSL2网络知识

WSL2网络问题

2023-09-05 14:06:29 1175

原创 OAuth2LoginAuthenticationFilter授权码登录回调扩展

OAuth2LoginAuthenticationFilter授权码登录回调扩展。

2023-05-21 11:01:52 446

原创 linux工作常用命令脚本

【代码】linux工作常用命令脚本。

2022-09-22 00:30:11 208

原创 mysql 日期函数和 java 日期函数使用时的注意点

mysql week 日期函数java Calendar 日期类使用注意点

2022-06-06 23:52:51 145 1

原创 挖矿病毒处理

挖矿病毒处理命令查看动态任务状况top查看病毒进程ps -ef |grep kdevtmpfsips -ef |grep kinsing查看异常ip和端口netstat -natp |grep查找异常文件find / -name kdevtmpfsifind / -name kinsing看看有哪些异常的docker镜像/var/lib/docker/overlay2/3d08459e1c8ed846432961e87ab0e6f82e17749342696997

2022-05-30 10:03:40 380

原创 RestTemplate 防坑指南

表单请求restTemplate 的表单请求必须使用MultiValueMap提交参数 MultiValueMap<String, Object> map = new LinkedMultiValueMap<>(); map.add("key","value"); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPL

2022-03-16 08:47:01 2007

原创 从mysql到elasticsearch建立搜索——处理多表关联和频繁变化的数据

从mysql到elasticsearch建立搜索——处理多表关联和频繁变化的数据增量数据方案 maxwell -> kafka -> spring data (kafka + elasticsearch) -> elasticsearchmaxwell 简介该工具伪装成mysql的从库达到监听数据库日志的效果,后转成json数据发动到消费端,主要关注json的database、table、type(增删改)、data、old 字段。支持命令启动存量数据同步,命令指定一个独立的ma

2021-11-27 15:28:19 1691

原创 组和人员角色权限控制

组和人员角色权限控制在一般的角色权限控制里,只有用户拥有角色,权限的控制也是基于用户的角色。在有些企业并不是这样的,往往一个组织也有相应的权限,这时候角色的权限控制就需要通过成员所在组的角色和人员的角色一起去控制。虽然说组也有角色,但是最终都是实施在个人上,这里一般有两个实现思路在把角色授予给组的时候,同时授予给组的每一个成员(在组新增成员时也要执行一次,推出组织时也要做处理),在鉴权的时候判断用户的所有角色,按照角色类型做一个取舍规则只在鉴权的时候,取出当前人员所在组的角色,按照角色类型做一

2021-09-12 22:10:38 588

原创 多租户和或者多企业角色权限控制

多租户和或者多企业角色权限控制多租户数据隔离单租户多企业角色权限控制多租户要不要租户切换这个功能单租户下机构切换的思考多租户数据隔离在多租户的模式下,把相同的服务租给多个企业,因为企业独立运营,所以数据要进行隔离,通常有2种方式,一种是独立数据库,另外一种是每个业务表都加上tenantId,通常是全局拦截的。这种模式下角色权限控制交给tenantId去隔离,不用做特别的处理。单租户多企业角色权限控制方案一:需要区分控制的业务表模拟多租户加上companyId来控制方案二:添加user_dep

2021-09-12 21:10:00 1638

原创 web应用层次架构

web应用层次架构mybatis和mybatis-plus架构在实践中的异同mybatismybatis-plus参考资料业务层和DDD(Domain-Driven Design)领域驱动设计mybatis和mybatis-plus架构在实践中的异同mybatisdao层:在mybatis中sql主要写xml中,用mapper对xml进行映射,mapper中的方法都是基于sql的通用数据库操作,提供给service调用service层:组合调用底层mapper接口实现业务逻辑,这层主要是业务逻辑的

2021-09-12 20:11:14 376

原创 IDEA常用快捷键

IDEA常用快捷键搜索查找重构生成代码搜索查找双击shift:根据文件名搜索alt+shift+f:根据文件内容搜索ctrl+b:查看声明ctrl+atl+b:查看实现类alt+f7:查看类在哪里被调用ctrl+alt+shift+u:查看继承图重构ctrl+o:重写父类ctrl+alt+c:将变量提升为常量ctrl+alt+v:将内联变量提取为变量alt+enter:补全关联、修正操作,例如变量名,import class,加个@Override后在接口创建方法,为实现类创建

2021-08-28 18:10:30 159

原创 数据库设计实战

数据库设计实战数据库通常有一些通用字段例如id,创建者,更新者,软删除标志,状态等提取领域模型设计数据库首先要从需求中提取出领域模型xxx_info,并根据领域模型分为多个大小可控的模块,加上不同的前缀使得设计更清晰。之后根据业务逻辑建立表和表之间的关系。在这个阶段不用过多考虑功能实现的复杂度,影响设计进度,因为很多东西要试错的。多级复杂关系处理多级的复杂关系不适合使用一个表格聚合处理,可以把上级字段冗余分配到各个下级表上,这样处理起来更方便。多对多关联表处理多对多关联表可以适当减少通用字段

2021-07-10 23:02:38 314

原创 使用Feign进行远程调用注意事项

微服务实战微服务接口提供者和消费者提供者Controller,通过mapper暴露对外接口,并注册到注册中心。消费者使用@FeignClien(注册中心服务名字,[指定域名和端口])注解到接口启用远程调用。使用@GetMapper(“子路径”)指定调用的服务的路径,并和方法绑定,注入接口后调用这个方法就会创建动态代理进行远程调用。注意事项@FeignCilent默认为参数加上@RequestBody, @PostMapping只支持一个参数,多了无法启动项目。由于参数和返回结果的实体

2021-07-10 22:39:14 908 1

原创 Spring读取yaml配置文件属性和自定作用域

Spring读取配置文件内容大全在Spring容器中使用@Value注解把环境变量里面的字段单独注入一个变量里面,有点笨重,使用只需要注入很少变量的情况。@ConfigurationProperties(prefix = “”)这个注解会把对应前缀下所有字段值注入实例变量里面,使用宽松绑定的规则@ConfigurationProperties不会向Spring容器注入相关处理类,只起到相关标记作用,要配合@Component或@EnableConfigurationProperties(指定类

2021-07-10 21:48:23 360

原创 Mybatis-Puls实践

Mybatis-Plus和MybatisMybatis-Plus在Mybatis的基础上做了增强,可以使用Mybatis的全部功能。另外增加了自己的代码生成,可以生成控制层、服务层、数据访问层的代码。另外增加了VO、DO、PO各层独有的实体生成,各层调用时要进行转换。各种实体类可选择继承一些通用的BaseEntetity,使得有通用的字段生成的XML文件中没有Mybatis的代码生成器的大量XML(估计是封装到一些通用的XML里面了)(这里要注意的是自定义查询语句的名字不要和内置的重名,会覆盖掉

2021-06-28 00:12:59 448 1

原创 Java程序员学点python

避坑指南来了,有些地方和Java很不一样python没有++运算符号,只能用+=看到 " : "符号不知所云?那是切片技术;1:n:1 返回1到n-1的数组,最后一个1是跳跃值,1:n:2 返回1,3,5…n-1;跳跃着可以省略,默认为1;前两个参数也可省略,默认为1到n。__len__这种形式的都是内置属性,有些有对应的获取函数。声明集合很简洁,=[array] ={dist} =(元组) =set()变量不用声明和指定类型多维数组创建有点奇怪。arr=[[0]*3 for i in ran

2021-06-14 21:34:29 1903 11

原创 WebFlux

相关名词Reator,Mono,Publisher,Subscriber,Subscription流程请求用户数据requset1(user1)WebFlux的控制层收到请求,创建一个user类型的Publisher1WebFlux的处理层收到Publisher1,创建一个Subscriber1且创建Subscription1用于返回结果给requset1,进行订阅Publisher1.subscribe(Subscriber1)5秒后Publisher1的user1从数据库取出完成,Subsc

2021-05-02 21:59:32 716

原创 微服务构架

微服务实战构架演进单体->集群->分布式集群认识京东jd.com 运营主页search.jd.com 搜索服务item.jd.com 商品服务cart.jd.com 购物车服务user.jd.com 用户服务(单点登录)passport.jd.com 购物服务miaosha.jd.com 秒杀服务SOA构架的三个角色provider 服务提供者consumer 服务消费者register 注册中心服务提供者的模型#mermaid-svg-3zBq7SB1ihbiL

2021-04-19 22:16:14 115 1

原创 MySQL数据库设计技巧

MySQL数据可设计原则命名原则只用小写字母(不同系统大小写敏感问题)多单词用"_"符号连接外键加表前缀,非外建不加主键选型自增 优:简单;缺:不适合分表分库,不安全(自增有规律)UUID 优:全局唯一,安全(无规律);缺:128位太大,乱序使得索引经常分裂雪花ID 长度可以自定义,通过时间戳+机器号或者业务表单id+自增ID这样可以保证有序性数据选型选型技巧尽量小的数据类型尽量简单的数据类型(int>date>char,IP用int)尽量不用NULL,特别是

2021-04-17 23:20:42 140

原创 spring三级缓存解决循环依赖

Spring三级缓存解决循环依赖(二级?)Spring中Bean的创建过程(生命周期)Spring的refresh()方法 把扫描XML和注解的Bean解析成BeanDefintion并注册到beanFactory,再注册一些Bean处理器后再调用finishBeanFactoryInitialization(beanFactory)创建单例Bean,步骤如下:实例化(掉用构造函数创建一个为填充任何属性的Bean)属性装配(@Autowried 依赖注入)初始华(aop增强)销毁Sprin

2021-04-15 22:43:19 151

原创 java的HashMap

java的HashMap初始化 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // 初始容量16 static final int MAXIMUM_CAPACITY = 1 << 30; // 最大容量 static final float DEFAULT_LOAD_FACTOR = 0.75f; //扩容因子 static final int tableSizeFor(int cap) {//保证

2021-04-05 10:28:33 94 1

原创 maven打包插件

maven打包插件nohup java -jar xxx.jar >log.txt & <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.5.7.RELEASE</version&gt

2021-04-04 22:08:00 286 1

原创 vue-cli2 单个组件打包为js

vue-cli2 单个组件打包为jsvue-cli2和vue-cli3参考这篇文章还有这篇文章vue-cli3有更多的默认配置支持更多场景,支持直接把组件打包成js的脚本,不用配置vue-cli2vue-cli2开发小组件建议直接使用vue init simpleproject xxx 创建项目,默认没有导入route。或者把生成的vue.config.js复制一份到vue普通项目中,后新建脚本使用这个配置。vue.config.jsvar path = require('path')v

2021-04-04 21:50:45 2840

原创 Vue-cli项目运行流程

Vue-cli项目的运行流程1、package.jsonpackage.json是整个项目的配置文件,运行时首先读取里面的配置信息,定义了该项目的基本信息,项目依赖信息,和npm run …的脚本配置"scripts": { "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", "start": "npm run dev", "unit": "jest --conf

2021-03-22 21:52:23 882

原创 spring security 各个filter的主要功能

spring security 各个filter的主要功能spring security是一个安全框架,主要实现登录认证、权限鉴定、session管理等工作。其把工作委托给springsecurityFilterChain来操作,大约有14个Filter。1、WebAsyncManagerIntegrationFilter:提供了对securityContext和WebAsyncManager的集成,使其支持把SecurityContext设置基于ThreadLocal的SecurityContext

2021-03-21 23:55:54 1012

原创 spring security jwt认证

spring security jwt认证流程这是我的第一篇CSDN博客。jwt简介传统的spring web应用,登录后把生成的token记录在session中,并于sessionid绑定,下次再访问时根据sessionid提取认证信息来认证身份。这里有很重要的一点,token是保存再服务器中的。jwt认证方式是登录后把{令牌信息,认证信息,认证码}加密成token返回给客户端,客户端自行解决token的存储方案。下次访问时携带者这个token,服务的把token解密,核对认证是否过期或伪造即可

2021-03-21 22:17:10 254

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除