自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Spring Security】 快速入门

Spring Security 之所以默认帮助我们做了那么多事情,它的底层原理是传统的Servlet过滤器。DelegatingFilterProxy作为过滤器的代理,帮助我们调用spring容器中所有注册的过滤器FilterChainProxy帮助我们管理多个不同的过滤器链(SecurityFilterChain)。SecurityFilterChain帮助我们处理复杂的业务逻辑,通过匹配不同的url,由不同的过滤器链的组合来接收,从而由不同的过滤器来完成相应的功能。

2024-03-28 15:30:50 628 1

原创 WPF 实现Popup不在最上层显示、随窗口移动

由于WPF 默认的Popup总是显示在所有窗口的前面,如何让popup 层只显示在该父级之上,并随着父级而动呢?下面来看实现。/// 是否窗口随动,默认为随动(true)/// 加载窗口随动事件/// 加载窗口随动事件while (win!= null)/// 刷新位置trycatchreturn;//是否最前默认为非最前(false)/// 重写拉开方法,置于非最前/// 刷新Popup层级RECT rect;#region P。

2024-01-10 09:55:28 821

原创 【WPF】 使用UserControl并在XAML中赋初始值

在XAML中使用自定义控件,并在XAML中并赋初始值。

2023-12-22 17:09:36 513

原创 【环境准备】NodeJs(压缩包版本)安装与配置

在Node路径中新建node_cache(缓存目录)和node_global(全局安装)目录。在编辑环境变量界面,点击新建,然后键入Node的所在路径,点击确定。调出CMD命令窗口,输入node -v,验证是否配置成功。配置环境变量,找到系统变量下的path并选中,点击编辑。在cmd窗口中,输入如下两个命令,完成路径设置。

2023-11-16 16:21:11 1522

原创 【服务调用】OpenFeign

Feign是一个声明式的Web服务客户端,让编写Web服务客户端变得非常容易,只需创建一个接口并在接口上添加注解即可

2023-11-15 17:02:38 63

原创 WPF 以视频为背景的登录界面

好的开始是成功的一半。对于软件来说好的登录页面也同样重要。如何制作一个动态背景的登录页面呢?那么今天它来了。

2023-09-26 16:34:29 160

原创 WPF Grid自定义不规则背景

天也不早了,人也不少了,鸡也不叫了,狗也不咬了,下面来看实现。

2023-09-25 15:40:04 292

原创 C# 线程暂停和恢复

因为需要一个自动播放和暂停图片的功能,所以就非常自然想到了创建一个线程,用点击事件控制线程的暂停和启动。

2023-06-26 09:11:31 1829

原创 【服务调用】Ribbon

将用户的请求平均分配到多个服务上,从而达到系统的HA(高可用)。常见的负载均衡有软件Nginx,LVS,硬件F5等。Ribbon本地负载均衡客户端 vs Nginx 服务端负载均衡区别Nginx 是服务端负载均衡,客户端所有请求都会交给nginx,然后由nginx实现转发请求。即负载均衡是由服务端实现的。Ribbon 本地负载均衡,在调用微服务接口时候,会在注册中心获取注册信息服务列表之后缓存到JVM本地,从而在本地实现RPC远程服务调用技术。

2023-05-17 16:09:36 100

原创 【服务注册】Consul

Consul 是一套开源的分布式服务发现和配置管理系统,由HashiCorp公司用Go语言。提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全方位的服务网格,总之Consul提供了一种完整的服务网格解决方案。

2023-04-25 16:53:52 61

原创 【服务注册】Zookeeper

Zookeeper 是一个分布式协调工具,可以实现注册中心功能。

2023-04-23 11:30:26 292

原创 【服务注册】Eureka

对于注册进eureka里面的微服务,可以通过服务发现来获得该服务的信息。保护模式主要用于一组客户端和Eureka Server之间存在网络分区场景下的保护。一旦进入保护模式,Eureka Server 将会尝试保护其他服务注册表中的信息,不再删除服务注册表中的数据,也就是不会注销任何微服务。如果出现下图情况,则说明Eureka进入了保护模式。默认情况下,如果EurekaServer在一定时间内没有接收到接收到某个微服务实例的心跳,EurekaServer将会注销该实例(默认90秒)。

2023-04-19 17:02:14 220

原创 Vuex入门级使用

教会你vuex的入门使用。

2023-02-08 08:44:54 49

原创 kafka 入门使用

kafka(发布订阅模式)是一个分布式的流媒体平台。应用:消息系统、日志收集、用户行为追踪、流式处理。

2023-01-14 12:23:57 77

原创 WPF GMap使用高德地图

文章目录前言一、Nuget下载Gmap二、代码1.添加类2.加载高德地图总结前言近日在项目中用到了GMap,并且Gmap中使用了高德地图,特此记录一下。一、Nuget下载Gmap在Nuget中搜索GMap,选择GMap.NET.Presentatiom进行下载安装。(请注意版本)二、代码1.添加类添加一个类,让其GMapControl类。代码如下:using GMap.NET;using GMap.NET.MapProviders;using GMap.NET.Projectio

2022-03-25 14:51:12 2041 5

原创 WPF窗口设置无边框,并清除上部白边

目录一、设置窗口无边框二、去上部白边1.引入库2.在xaml中使用总结一、设置窗口无边框只需在xaml的window标签中,添加WindowStyle="None"属性,即可去掉上部标题栏<Window x:Class="WpfRiUi.module.CheckoutBox" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.micr

2022-03-25 08:58:27 4372 4

原创 WPF 单击双击互斥事件

前言近日有个需求,单击加0.1(减0.1),双击加1,(减1)实现1、xaml部分<Grid> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition/> </Grid.ColumnDefinitions> <DockPanel Grid.Column="0" HorizontalAlignment="Center"&gt

2022-03-21 16:37:20 640

原创 Mysql配置文件

[mysqld]pid-file = /var/run/mysqld/mysqld.pidsocket = /var/run/mysqld/mysqld.sockdatadir = /var/lib/mysql#log-error = /var/log/mysql/error.log# By default we only accept connections from localhost#bind-address = 127.0.0.1# Disabling symbolic-links

2022-03-09 16:36:00 481

原创 九、TCP粘包和拆包及解决方案

9.1、TCP粘包和拆包基本介绍TCP是面向连接的,面向流的,提供高可靠性服务。收发两端(客户端和服务器端)都要有一一成对的Socket,因此,发送端为了将多个发给接收端的包,更有效的发给对方,使用了优化方法(Nagle算法),将多次间隔较小且数据量小的数据,合并成一个大的数据块,然后进行封包。这样做虽然提高了效率,但是接收端就难于分辩出完整的数据包了,因为面向流的通信是无消息保护边界的。由于TCP无消息保护边界,需要在接收端处理消息边界问题,也就是我们所说的粘包、拆包问题、TCP粘包、拆

2022-01-26 16:35:50 1912

原创 八、Netty编解码器和handler的调用机制

8.1、基本说明Netty的组件设计:Netty的主要组件有Channel、EventLoop、ChannelFuture、ChannelHandler、ChannelPipe等ChannelHandler充当了处理入站和出站数据的应用程序逻辑的容器。例如,实现ChannelInboundHandler接口(或ChannelInboundHandlerAdapter),你就可以接收入站事件和数据,这些业务逻辑处理。当要给客户端发送响应时,也可以从ChannelInboundHandler冲刷数据

2022-01-26 16:33:16 193

原创 七、Google Protobuf

7.1、编码和解码的基本介绍编写网络应用程序时,因为数据在网络中传输的都是二进制字节码数据,在发送数据时就需要编码,接收数据时就需要解码codec(编解码器)的组成部分有两个:decoder(解码器)和encoder(编码器)。encoder负责把业务数据转换成字节码数据,decoder负责把字节码数据转换成业务数据7.2、Netty本身编码解码的机制和问题分析Netty自身提供了一些codec(编解码器)Netty提供的编码器StringEncoder,对字符串数据进行编码

2022-01-26 16:30:59 248

原创 六、Netty核心模块组件

6.1、Bootstrap、ServerBootstrapBootstrap 意思是引导,一个Netty应用通常由一个Bootstrap开始,主要作用是配置整个Netty程序,串联各个组件,Netty中Bootstrap类是客户端程序的启动引导类,ServerBootstrap是服务器启动引导类常见的方法有public ServerBootstrap group(EventLoopGroup parentGroup,EventLoopGroup childGroup),该方法用于服务端,用来设置两

2022-01-26 16:28:42 117

原创 五、Netty高性能结构设计

5.1、线程模型基本介绍不同的线程模型,对程序的性能有很大影响。目前存在的线程模型有:传统阻塞IO服务模型Reactor模式根据Reactor的数量和处理资源池线程的数量不同,有3种典型的实现单Reactor单线程单Reactor多线程Netty线程模式(Netty注意基于主从Rectory多线程模型做了一定的改进,其中主从Reactor多线程模型有多个Reactor);5.2、传统阻塞I/O服务模型5.2.1、工作原理图PS:黄色的框表示对象,蓝色的框表

2022-01-26 16:25:18 109

原创 四、Netty概述

4.1、NIO存在的问题NIO的类库和API繁杂,使用麻烦:需要掌握Selector、ServerSocketChannel、SocketChannel、ByteBuffer等。需要具备其他的额外技能:需熟悉java多线程编程,因为NIO编程涉及到Reactor模式,你必须对多线程和网络编程非常熟悉,才能编写出高质量的NIO程序。开发工作量和难度都非常大;例如客户端面临断连重连,网络闪断,半包读写,失败缓存、网络拥塞和异常流的处理等等JDK NIO的Bug: 例如臭名昭著的Epoll Bug,它会

2022-01-26 16:19:26 159

原创 三、Java NIO 编程

3.1、Java NIO 基本介绍Java NIO 全称java non-blocking IO,是指JDK提供的新API。从JDK1.4开始,Java提供了一系列改进的输入/输出的新特性,被统称为NIO(即New IO),是同步非阻塞的NIO相关类都被放在java.nio包及子包下,并且对原java.io包中的很多类进行改写。NIO有三大核心部分:Channel(通道),Buffer(缓存区),Selector(选择器)NIO是面向缓冲区,或者面向块编程的,数据读取到一个它稍后处理

2022-01-26 16:17:16 989

原创 二、java BIO 编程

2.1、I/O模型I/O模型简单的理解;就是用什么的通道进行数据的发送和接收,很大程度上决定了程序通信的性能Java共支持3种网络编程模型I/O模式:BIO,NIO,AIOJava BIO :同步并阻塞(传统阻塞型),服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进程处理,如果这个连接不做任何事情会造成不必要的线程开销 Java NIO同步非阻塞,服务器实现模式为一个线程处理多个请求(连接),即客户端发送的连接请求都会注册到多路复用器上,多路复用

2022-01-26 16:09:08 174

原创 一、Netty的概念与体系结构

1、Netty介绍1.1、简介Netty是由JBOSS提供的一个java开源框架,现为Github上的独立项目Netty是一个异步的,基于事件驱动的网络应用框架,用以快速开发性能、高可靠性的网络IO程序。Netty主要针对在TCP协议下,面向Clients端的高并发应用,或者Peer-to-Peer场景下的大量数据持续传输的应用。Netty本质是一个NIO框架,适用于服务器通讯相关的多种应用场景1.2、特点设计统一的API,支持多种传输类型,阻塞和非阻塞的简单而强大的线程模型真正的无连

2022-01-26 16:05:21 155

原创 RabbitMq入门(与springboot简单使用)

RabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在完成不同的应用之间共享数据,RabbitMQ是使用Erlang语言来编写的,并且RabbitMQ是基于AMQP协议的。在rabbitMq中,Exchange有四个类型:direct,topic,fanout,header,详见。

2021-12-10 11:03:59 1247

原创 遮罩层按钮事件失效

项目场景:鼠标悬浮在图片上时,显示删除按钮。点击完成删除操作,问题描述:实现完页面效果时,点击删除标识不能触发删除事件。原因分析:可能是遮罩层,挡住了按钮事件。解决方案:在遮罩层添加pointer-events:none;样式.mask{ position:absolute; background:rgba(101,101,101,0.6); color:#ebe3e3; opacity: 0; top: 0; right: 0;

2021-11-18 15:55:06 815

原创 前端Object转Map

Const Map = new Map(Object.entries('要转换的Object'))

2021-11-03 09:35:54 746

原创 MINIO在java中的使用

引言​ MinIO 是全球领先的对象存储先锋,目前在全世界有数百万的用户. 在标准硬件上,读/写速度上高达183 GB / 秒 和 171 GB / 秒。对象存储可以充当主存储层,以处理Spark、Presto、TensorFlow、H2O.ai等各种复杂工作负载以及成为Hadoop HDFS的替代品--------引自官网的话。这么一看这个MINIO好nb啊,居然能这么快。 就凭这速度就值得我们学习一下。环境介绍​ 编程语言: 你爱我,我爱你的java​ 框架: springboot​ 还有今天

2021-07-20 16:15:35 7001 13

原创 SpringSecurity在前后端分离中的应用

框架简介​ Spring Security是基于Spring AOP和Servlet过滤器的安全框架,它提供全面的安全性解决方案。同时在web请求级和方法调用级处理身份确认和授权。项目介绍​ 在不分离情况下使用过了SpringSecurity,感觉还是非常不错的,所以想在前端后端分离的情况下,玩一把SpringSecurity,其中遇到了不少问题,不过在度娘的支持下成功了。特此写了这篇随笔,如果文中存在一些问题和有更好的写法请告诉我,小僧万分感谢。​ 项目用到的技术:SpringBoot +Spri

2021-06-15 17:12:31 1614 8

原创 Docker 学习笔记

Docker为什么出现?开发–运维问题,环境配置是十分麻烦,每一个机器都要部署环境(Redis,Es ,Hadoop)费时费力发布一个项目(jar+(Redis Mysql jdk es))项目能不能都带上环境安装打包之前在服务器配置一个应用的环境Redis Mysql jdk ES Hadoop 配置超麻烦了,不能够跨平台Docker给以上的问题,提出了解决方案!Docker的思想就来自集装箱聊聊dockerDocker是基于go语言开发的官网:https://www.docker.com

2021-04-07 10:42:10 3737

原创 spring security 身份失效时的异常处理

spring security 身份失效时的异常处理1、问题说明​ Spring Security 当身份失效时,默认的处理方式是跳转首页。但是在前后端分离的情况下,这个方式显然是不行。查阅了一些博客知道了有两种方法解决:需要继承类LoginUrlAuthenticationEntryPoint,并重写commence方法(不推荐)实现AuthenticationEntryPoint,实现commence方法2、后端配置1.实现AuthenticationEntryPoint类,实现com

2021-01-15 10:11:42 916

原创 html页面使用vue组件,初始化高德地图(实现绘制折线)

html页面使用vue组件,初始化高德地图(实现绘制折线)一 vue初始化地图1. 引入高德地图的js<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=你申请的高德key"></script>2. 初始化地图容器<style>#container { width: 100%; height: 100%; overflow: hidden;

2020-07-15 16:39:37 1498

原创 element-ui table 字段过长悬浮显示

element-ui 字段过长悬浮显示<template slot-scope="scope"> <el-popover placement="top-start" width="300" trigger="hover" :disabled="scope.row.unit_name.length <= 4" > <div>{{ scop

2020-07-15 11:06:13 1668

空空如也

空空如也

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

TA关注的人

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