自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Feign 使用 @PathVariable

注解来在URL中插入变量。这和Spring MVC的。在实际调用时,Feign将会把。在Feign中,你可以使用。方法将发送一个GET请求到。处,最后请求的URL就会是。是一个占位符,其值由。

2023-11-20 19:56:35 739

原创 mongodb 日志详情

MongoDB的日志包括两个主要部分:操作日志(oplog)和系统日志。

2023-11-20 15:29:32 1756

原创 docker 安装mongodb 实现 数据,日志,配置文件外挂

最近开发了一个评论系统之前用mysql来存储数据,但是考虑到后期业务增大访问量也会增大,为了兼容这种高并发的场景,因此经过多方面的考虑,我们最终选择了mongodb来存储评论信息。docker pull 是docker拉取镜像的命令, mongo 代表mongodb的镜像 mongo: 后面的数字是拉取mongo镜像的版本号。指定MongoDB是否启用身份验证,默认为disabled,表示禁用。指定操作日志(oplog)的大小,单位为MB,默认为空,使用默认大小(通常为物理内存的5%)。

2023-11-18 14:25:31 1218

原创 spring security 扩展自定义登录方式

要自定义Spring Security的认证模块,你可以按照以下步骤进行:创建一个自定义的认证提供程序(Authentication Provider)类,该类实现了接口。在该类中,你可以编写你自己的认证逻辑,比如验证用户名和密码是否匹配。实现接口来获取用户的详细信息。你可以根据自己的需求,从数据库、LDAP等数据源中获取用户信息,并返回一个对象。在配置类(通常是继承自的类)中,覆盖方法。在该方法中,你可以指定使用你自定义的认证提供程序和用户详情服务来进行认证。在上述配置类中,覆盖。

2023-08-15 17:50:49 429

原创 spring security netty websocket 用户认证

当WebSocket客户端连接到服务器时,服务器会通过拦截器进行用户认证,并将认证结果保存到SecurityContextHolder中。然后,在Web```在上面的配置中,定义了“/ws/**”路径需要进行认证,其他路径不需要认证。使用inMemoryAuthentication方法添加了一个用户"user"和密码"password",并赋予了"ROLE_USER"角色。在该拦截器中,可以获取到连接的HTTP请求,并使用Spring Security来进行用户认证。

2023-08-15 14:49:34 573

原创 nginx 实现 https

这里写目录标题1 什么是 https2 https 的特点3 nginx 实现 https3.1 查看nginx 是否支持 https3.2 安装 ssl 模块3.3 配置 ssl 相关的配置4 Nginx的SSL相关指令4.1 ssl1 什么是 httpsHTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 [1] 。HTTPS

2022-01-25 18:34:06 7283

原创 nginx实现 反向代理

这里写目录标题1 什么是反向代理2 反向代理的优缺点3. nginx 实现反向代理3.1 基本配置3.2 nginx 反向代理配置语法3.2.1 proxy_pass3.2.2 proxy_set_header3.2.3 proxy_redirect4 nginx 反向代理 spring boot1 什么是反向代理一个用于接收请求的服务器将接受到的请求转发到实际通过服务的服务器这个过程就叫反向代理。2 反向代理的优缺点优点:反向代理负载均衡可以将优化的负载均衡策略和代理服务器的高速缓存技术

2022-01-23 12:16:38 2852

原创 nginx Rewrite功能配置

这里写目录标题1功能简介2 Rewrite的相关指令2.1 set 指令2.2 Rewrite常用全局变量2.3 if 指令2.4 break 指令2.5 return 指令2.6 rewrite 指令2.6 rewrite_log指令1功能简介Rewrite是Nginx服务器提供的一个重要基本功能,是Web服务器产品中几乎必备的功能。主要的作用是用来实现URL的重写。www.jd.com 注 意:Nginx服务器的Rewrite功能的实现依赖于PCRE的支持,因此在编译安装Nginx服务器之前,需要安

2022-01-21 12:21:48 3209

原创 centos nginx 开机自启和系统变量设置

这里写目录标题1 前提2 设置开机自启3 将nginx 设置为系统变量1 前提经过前面的操作,我们会发现,如果想要启动、关闭或重新加载nginx配置文件,都需要先进入到nginx的安装目录的sbin目录,然后使用nginx的二级制可执行文件来操作,相对来说操作比较繁琐,这块该如何优化?另外如果我们想把Nginx设置成随着服务器启动就自动完成启动操作,又该如何来实现?这就需要用到接下来我们要讲解的两个知识点:Nginx配置成系统服务Nginx命令配置到系统环境2 设置开机自启在/usr/lib

2022-01-20 17:44:47 187

原创 nginx events 模块配置

这里写目录标题1.简介2.主要指令2.1 accept_mutex2.2 multi_accept2.3 worker_connections2.4 use3. nginx event模块的基本配置1.简介nginx events 模块主要是nginx 和用户交互网络连接优化的配置内容2.主要指令nginx events模块主要包含了accept_mutex, multi_accept,worker_connections 和 use这几个指令2.1 accept_mutex这个配置主要可以用

2022-01-14 11:23:27 2861

原创 mybaits 查询枚举对象

在我们日常开发中,为了方便有些状态的字段需要定义枚举来管理,如何通过mybaits将数据库的字段映射到java的枚举对象?1.定义枚举对象import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;import com.communal.common.anotations.Remark;import lombok.AllArgsConstructor;import lombok.Getter;import org.apac

2022-01-13 15:45:57 748

原创 spring security 如何实现异步返回自定义登录信息

这里写目录标题1. 背景2.实现1. 背景spring security 默认支持的是同步跳转功能,也就是说登录成功以后它会自动跳转到其他页面,但这一结果不是很符合我们日常的开发需求,那么spring security 如何返回自定义json字符串呢?接下来我们就来实现这一功能。2.实现spring security 提供了两个处理认证结果的handle AuthenticationSuccessHandler 和 AuthenticationFailureHandlerAuthenticati

2022-01-07 16:03:05 689

原创 spring boot 如何优雅返回404

spring boot 有自定义的404页面,其体验很不友好,如何修改404页面?1.修改配置文件ymlspring: mvc: throw-exception-if-no-handler-found: true ##如果访问404 抛出异常 resources: add-mappings: false #不给系统资源添加映射2.添加全局拦截器import com.communal.common.responses.ServerResponse;import

2022-01-06 11:54:18 1302

原创 centos 安装 nginx

这里写目录标题1. 写在前面2. 源码安装1. 写在前面centos 安装nginx总共有3种方式 源码安装,yum源下载安装,docker镜像安装。接下来我就依次讲解下几种方式的安装2. 源码安装首先访问 nginx 的官网 nginx的官网,点击download连接照到对应的型号和版本输入shell命令wget https://nginx.org/download/nginx-1.16.1.tar.gz下载完成后就会得到一个Nginx的压缩包接下来执行解压操作:tar -zx

2022-01-04 14:52:50 2094

原创 初识spring security

这里写目录标题1.前言2.简介2.1 什么是 spring security1.前言我们在日常的项目开发过程中经常会开发登录认证,授权等基础功能。这些功能看上去简单,实际上也简单,但是它却在我们项目中有着举足轻重的地位,是一切业务的根本。为了统一解决这一根本问题,软件行业的巨头公司出了一些框架, 如: apache shiro, spring security, Sa-Token。那么今天我们就来聊聊 spring security。2.简介2.1 什么是 spring securitysprin

2021-12-28 12:00:42 561

原创 mybatis 无限极分类

定义一个实体类import com.baomidou.mybatisplus.annotation.TableField;import com.communal.common.anotations.*;import com.communal.mybatis.entities.BaseTimeEntity;import com.fasterxml.jackson.annotation.JsonInclude;import lombok.Getter;import lombok.NoArgsC.

2021-12-23 10:43:02 574

原创 mybatis plus 存储 list 数据

这里写目录标题1.背景2. 如何用 mybaits plus 来实现2.1 定义权限类2.2 封装 Jackson工具类2.3 定义 转换器2.4 使用转换器1.背景在我们平时开发中需要向数据库存储 list 这种类型的数据,这种可以用关联表来做,也可以直接用json 类型的字段来存储,在这里我选择用json类型的字段来存储。因为关联数据太多会增加我们系统的复杂度,也会印象我们数据库的查询效率。2. 如何用 mybaits plus 来实现2.1 定义权限类import com.fasterxm

2021-12-22 10:41:50 7778

原创 spring boot + vue 实现 rsa 非对称加密

这里写目录标题1. 背景2.加密分类3. spring boot 实现 rsa 加密算法3.1 rsa 工具类三级目录``1. 背景在我们平时项目开发过程中经常会遇到各种各样的安全问题,为了防止我们的业务数据不被泄露,提高我们系统的安全性,在数据传输的时候我们对传输的数据加密。2.加密分类我们平时接触到的加密算法有很多种,如:md5,base64 等。它们可以分为:对称加密,非对称加密和hash加密。对称加密 指加密和解密使用相同密钥的加密算法。对称加密算法的优点在于加解密的高速度和使用长密钥时

2021-12-22 10:18:27 1780

原创 docker 安装 mysql

docker 安装mysql1.拉取mysql 的镜像2.执行初始化运行3. 创建mysql挂载的文件夹4. 将mysql容器的配置文件拷贝到宿主机5. 停止原有容器6. 删除原有镜像7. 重新运行将配置文件和数据文件挂载到宿主机1.拉取mysql 的镜像docker pull mysql:8.0.182.执行初始化运行docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD='root' -e TZ=Asia/Shanghai -d

2021-12-16 13:48:07 150 2

原创 spring cloud ribbon 更换负载均衡的算法

1. 什么是ribbonSpring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用。Spring Cloud Ribbon虽然只是一个工具类框架,它不像服务注册中心、配置中心、API网关那样需要独立部署,但是它几乎存在于每一个Spring Cloud构建的微服务和基础设施中。因为微服务间的调用,API网关的请求转发等内容,实际

2021-12-15 15:53:29 448 1

原创 spring cloud使用 openfegin 实现服务调用

1.fegin 是什么Feign是一个声明式WebService客户端。 使用Feign能让编写Web Service客户端更加简单。2.fegin 能干什么1.可以很容易实现 http java 客户端2.它自身集成了ribbon,更优雅的实现服务的调用和负载均衡。3.fegin 的原理Feign远程调用,核心就是通过一系列的封装和处理,将以JAVA注解的方式定义的远程调用API接口,最终转换成HTTP的请求形式,然后将HTTP的请求的响应结果,解码成JAVA Bean,放回给调用者。Feig

2021-12-10 17:18:30 557

原创 THE SELF PRESERVATION MODE IS TURNED OFF

THE SELF PRESERVATION MODE IS TURNED OFF. THIS MAY NOT PROTECT INSTANCE EXPIRY IN CASE OF NETWORK/OTHER PROBLEMS在我们启动 eureka 时发现了一个 *THE SELF PRESERVATION MODE IS TURNED OFF. THIS MAY NOT PROTECT INSTANCE EXPIRY IN CASE OF NETWORK/OTHER PROBLEMS**如图:其意思

2021-12-10 15:28:12 7909

原创 docker cp 拷贝文件

1.基本语法docker cp [源对象] [目标对象]2.从宿主机拷贝文件到容器docker /usr/local/mysql/config/my.cnf mysql:/etc/my.cnf3.从容器拷贝到宿主机docker mysql:/etc/my.cnf /usr/local/mysql/config/my.cnf注意docker cp 使用实例一定要加实例的名称...

2021-12-10 12:07:42 7359 1

原创 docker 基本操作

1.配置镜像vim /etc/docker/daemon.json国内镜像地址大全Docker中国区官方镜像: https://registry.docker-cn.com网易: http://hub-mirror.c.163.com ustcustc: https://docker.mirrors.ustc.edu.cn中国科技大学: https://docker.mirrors.ustc.edu.cn腾讯云: https://mirror.ccs.tencentyun.com配置方

2021-12-10 11:46:21 623

原创 spring boot 实现全局异常处理

1.前言在我们实际项目开放中经常需要我们处理很多的异常,如何在spring boot 项目里面实现全局异常呢?今天我们就来聊聊。2.用到注解@RestControllerAdvice 和 @ExceptionHandler@RestControllerAdvice@RestControllerAdvice是@ControllerAdvice的派生注解,它继承了@ResponseBody,说明了它是一个@Controller的增强器,并且会把信息通过response body响应给前端。我们可

2021-12-10 11:25:17 837

原创 spring boot 自定义 redisTemplate

@Configurationpublic class RedisTemplateConfig { @Autowired private RedisConnectionFactory redisConnectionFactory; @Bean(name = "redisCacheManager") public RedisCacheManager manager() { //设置json序列化配置 ObjectMapper objectMap

2021-12-09 14:12:56 243

原创 spring cloud gateway 解决跨域的问题

1. 背景随着前端三大框架的横空出世

2021-12-09 12:30:33 3511 1

原创 spring cloud eureka 限制ip和实例名称注册

为了保护我们eureka注册中的安全我们需要限制ip和实例名称注册,eureka官方没有提供相关的配置,于是我们只能去扩展它的源码1.创建一个CustomInstanceRegister 代码如下:import com.netflix.appinfo.ApplicationInfoManager;import com.netflix.appinfo.InstanceInfo;import com.netflix.discovery.EurekaClient;import com.netflix.

2021-12-08 17:54:12 643

原创 spring cloud eureka 集合 spring security 实现注册服务认证

1.前言为了提高我们微服务注册中心的安全性,我们需要给注册中心加认证的功能,防止随意注册服务。2.实现步骤2.1 修改pom文件引用 spring security <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-security</artifactI

2021-12-08 13:41:56 517

原创 mybatis plus 自动填充

1.什么是自动填充顾名思义自动填充就是在数据库插入时对表的某些字段自动赋值2.自动填充实现方式2.1 数据库自动填充在我们创建表的时候可以直接给某些字段设置默认值以达到自动填充的功能。如:数据库自动填充的缺点数据库在插入语句时会给判断相关字段是否有值和给其赋值,因而或多或少都会影响数据库的执行效率。由于是直接辅值从而不好处理逻辑控制。维护成本比较高2.2 实体类直接赋值我们还可以通过实体类直接赋值, 如: private Boolean onLine = Boolea

2021-12-08 12:37:14 576

原创 docker 简介与centos 安装docker

docker 简介与centos 安装docker1. docker 简介1.1 docker是什么Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。1.2 docker 的概念Docker是开发人员和系统管理员使用容器开发、部署和运行应用程序的平台。使用Linux容器来部署应用程序称为集装箱化。使用docker轻

2021-12-07 14:16:06 872

原创 mybaits plus 字段加密与解密

mybaits plus 字段加密与解密写在前面在我们实际开发中有的时候需要保证数据的安全,那么这个时候我们就需要对我们存储的数据加密,数据加密可以用很多方法实现,比如数据库加密,java代码加密和orm框架加密等等。思考这么多加密方式我们应该选择那种方式?1.数据库加密:主流数据库都提供了一系列的加密功能,...

2021-12-07 12:13:00 7190 11

原创 rabbitmq exchange- 交换机

定义交换机是用于接受消息,并且根据路由键转发消息到所绑定的消息队列上。工作原理工作原理如图:蓝色的模块:他是消息生产 者的工作流程,消息生产者负责生产消息,并将消息发送到exchange交换机上,然后exchange通过路由匹配将得到的消息存放到对应的消息队列上。绿色模块:代表消息的消费者的工作流程,消费者通过监听队列得到队列里存放的消息,然后进行消费。黄色模块:代表交换机匹配路由键的过程。红色模块:代表整个rabbitmq的服务。交换机属性name : 代表交换机的名称type: 交

2021-05-29 17:11:00 110

原创 rabbitmq 命令行操作

基础服务操作rabbitmqctl stop_app 关闭服务rabbitmqctl start_app 开启服务对用户的操作rabbitmqctl add_user username password 添加用户rabbitmqctl list_users 查看用户列表rabbitmqctl delete_user username 删除用户rabbitmqctl clear_permission -p hostpath username 清空用户的权限rabbitmqctl list

2021-05-28 14:47:05 321

原创 初识rabbitmq

1. 为什么互联网大厂要用rabbitmqrabbitmq是什么rabbitmq是一个开源的消息代理和队列服务器,用平台协议在不同环境的应用之间共享数据,rabbitmq是用erlang语言并遵循amqp协议来编写的。特点可支持夸平台夸语音调用。为什么大厂用它1.它是开源的2.它的性能优秀3.稳定性有保障4.它提供了可靠性消息投递模式(confirm)和返回模式5.和spring mqp整合很完美,api很丰富6.它的集群模型很完美,表达式配置,ha模型。7.保证数据不丢失的前提下提

2021-05-28 13:42:59 114

原创 java 设计模式之-委派模式

java 设计模式之-委派模式定义并不属于23种设计模式,但是面向对象常用的一种设计模式,但在我们使用的spring框架里会经常看见其身影。其原理就是两个类A,B具有相同的属性和方法,但是客户端通过调用b的方法或属性就能调用a的方法和属性,而客户端是不知道a的存在,就好比你在闪修上下一个维修手机的工单,你并不知道它们公司的维修工程师,它自动给你委派一位维修工程师给你上门服务。举个例子在我们平时开发工作中当产品经理拟定了一个功能,该功能需要前端工程师和后端工程师一起协同完成。此时产品经理并不会跟前端工

2021-05-28 10:45:59 157

原创 Spring AOP实现线程安全的日志输出功能

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I...

2018-08-15 16:38:30 3049 1

空空如也

空空如也

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

TA关注的人

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