- 博客(22)
- 收藏
- 关注
转载 【Spring Security】实现多种认证方式
首先针对每一种登录方式,我们可以定义其对应的认证器AuthenticationProvider,以及对应的认证信息Authentication实际场景中这两个一般是配套使用。认证器AuthenticationProvider有一个认证方法authenticate(),我们需要实现该认证方法,认证成功之后返回认证信息Authentication。
2023-12-13 16:41:13 2523
转载 4 种 MySQL 同步 ES 方案,yyds!
数据源地址动态适配:对于数据订阅及同步链路,容灾系统还会监测数据源的连接地址切换等变更操作,一旦发现数据源发生连接地址变更,它会动态适配数据源新的连接方式,在数据源变更的情况下,保证链路的稳定性。在实际项目开发中,我们经常将 MySQL 作为业务数据库,ES 作为查询数据库,用来实现读写分离,缓解 MySQL 数据库的查询压力,应对海量数据的复杂查询。这其中有一个很重要的问题,就是如何实现 MySQL 数据库和 ES 的数据同步,今天和大家聊聊 MySQL 和 ES 数据同步的各种方案。
2023-11-20 09:58:38 263
转载 docker解决安装mysql容器,navcat链接mysql提示2013错误lost connection Lost connection to MySQL server at ‘reading
3坚持就是胜利,继续查询资料,按照网上办法还是一直不行,寻思到容器修改下mysql的配置文件继续按照同样的方法测试,但是进入容器发现 容器没有vi等命令,寻思安装吧,发现容器不能连接外网(这个是关键),然后开始找不能连接外网的办法,通过命令docker run --net host 这个命令让容器共享宿主机网络配置。然后抱着侥幸的心里在测试一下navcat是否能链接mysql,发现mysql能正常连接了,不知道其中是为什么,但是解决问题的关键点在于 共享宿主机网络配置。按照以上命令解决问题。
2023-11-07 16:11:33 686
转载 18个一线工作中常用 Shell 脚本, 太好用啦~
假设服务器环境为 lnmp,近期访问经常出现 502 现象,且 502 错误在重启 php-fpm 服务后消失,因此需要编写监控脚本,一旦出现 502,则自动重启 php-fpm 服务。加个死循环,如果IP可用就退出,不可用提示继续输入,并使用awk判断。应用场景:希望将执行结果或者位置参数赋值给变量,以便后续使用。方法1:EOF标准输出作为expect标准输入。方法1:根据访问日志(Nginx为例)方法3:将expect脚本独立出来。方法2:通过TCP建立的连接。方法2:通过日志获取登录状态。
2023-10-07 14:29:14 334
转载 对线面试官:说出Java中的7种重试机制
从手动重试,到使用 Spring AOP 自己动手实现,再到站在巨人肩上使用特别优秀的开源实现 Spring Retry 和 Google guava-retrying,经过对各种重试实现方式的介绍,可以看到以上几种方式基本上已经满足大部分场景的需要:如果是基于 Spring 的项目,使用 Spring Retry 的注解方式已经可以解决大部分问题如果项目没有使用 Spring 相关框架,则适合使用 Google guava-retrying:自成体系,使用起来更加灵活强大。
2023-08-25 09:59:48 60
转载 SpringBoot如何设计业务操作日志功能?
很久以前都想写这篇文章,一直没有空,但直到现在我对当时的情景还有印象,之所以有印象是因为需求很简单,业务操作日志的记录与查询的功能,但是具体实现真的很烂,具体的烂法会在反面示例里细说,领导以及客户层面很认可,一系列迷之操作,让我印象深刻。业务操作日志记录中包含了用户操作的功能名称、功能描述、操作人、操作时间和操作的参数报文,参数报文之所以选择存储在文件中,是因为正常情况下,是不需要知道具体的参数报文,只有在回滚操作的时候才会用到,可以根据上一次的参数报文逆向操作。
2023-08-25 09:41:45 138
转载 巧用 MyBatis Plus 实现数据权限控制
列表实现方案有两种,一是在开发初期就做好判断赛选,但如果这个需求是中途加的,或不希望每个接口都加一遍,就可以方案二加拦截器的方式。引入角色,我们先假设有三种角色,按照常规的业务需求,一种是管理员查看全部、一种是部门管理查看本部门、一种是仅查看自己。因为service层,本质上还是调mapper层, 所以还是在mapper层做文章,原来的mapper实现了。接口,所以能够查询,我们要做的就是在 mapper层中间套一个中间接口,来方便我们加注解。记得把拦截器加到MyBatis-Plus的插件中,确保生效。
2023-08-25 08:47:41 507
转载 接口防刷实现
咋说呢就是通过自定义注解中定义 x 秒内 y 次访问次数,禁用时长为 z 秒自定义注解 + 在需要进行防刷处理的各个接口方法上在拦截器中通过反射获取到各个接口中的x, y, z值即可达到我们想要的接口自由目的下面做个实现声明自定义注解中方法中使用处逻辑修改(最重要是通过反射判断此接口是否需要进行防刷处理,以及获取到x, y, z的值/*** @description: 接口防刷拦截处理*/@Slf4j@Resource/*** 锁住时的key前缀*//**
2023-04-17 08:42:13 193
转载 SpringBoot 整合 ChatGPT API 项目实战
(2)创建 API KEY,这个 API KEY 是用于 HTTP 请求身份验证的,可以创建多个。这个 API KEY 是用于 HTTP 请求身份验证的,可以创建多个。体验到了ChatGPT的强大之后,那么我们会想,如果我们想基于ChatGPT开发一个自己的聊天机器人,这个能搞定吗?(4)注意 API 调用是收费的,但是 OpenAI 已经为我们免费提供了18美元的用量,足够大家放心使用。可选参数,默认值为 1,取值 0-2。ChatGPT平台已经为技术提供了一个入口了,很简单的就是实现了。
2023-03-28 08:35:13 1004 1
原创 小知识-springboot外部配置
第一种:启动命令指定我们可以通过如下 2 个参数,指定外部配置文件的路径:spring.config.location spring.config.additional-locationspring.config.location我们可以先将 Spring Boot 项目打包成 JAR 文件,然后在命令行启动命令中,使用命令行参数 --spring.config.location,指定外部配置文件的路径。java -jar {JAR} --spring.config.locati..
2022-04-22 10:27:49 4003
转载 SpringMVC Controller接收参数总结
基本数据类型SpringMVC Controller各方法参数绑定首先支持Java所有基本类型(包括: byte、short、int、long、float、double、char、string、boolean),以及基本类型对应封装高级类(包括:StringBuilder、StringBuffer)。代码示例如下所示(这里仅以int及Integer类型做例子,其他类型实现方式与此类同):@Controller@RequestMapping("param")public class ParamCon
2020-12-28 10:04:46 956
转载 MyBatis配置多数据源
MyBatis配置多数据源在做项目的过程中,有时候一个数据源是不够,那么就需要配置多个数据源。本例介绍mybatis多数据源配置。前言一般项目单数据源,使用流程如下:单个数据源绑定给sessionFactory,再在Dao层操作,若多个数据源的话,那不是就成了下图可见,sessionFactory都写死在了Dao层,若我再添加个数据源的话,则又得添加一个sessionFactory。所以比较好的做法应该是下图实现原理扩展Spring的AbstractRoutingDataSourc
2020-11-17 14:23:19 2034 1
转载 MySql主从复制配置
MySql主从复制配置环境操作系统:CentOS-7MySql:mysql-5.6一台虚拟机又克隆了两台192.168.102.31 master192.168.102.56 slave192.168.102.36 slave启动/停止service mysqld start|stop|restartsystemctl start|stop|restart mysqld本机的话,直接mysql就可以进去了主数据库配置第1步:编辑/etc/my.cnf文件,在
2020-11-17 10:06:59 119
原创 HandlerExceptionResolver统一异常处理
由于前后分离,所以这里是统一返回JSON的格式自定义Exceptionpackage com.bshf.recipe.exception;public class BussinessException extends RuntimeException { private static final long serialVersionUID = 1L; pr...
2020-04-18 14:34:25 707
原创 微信小程序推送模板消息
功能介绍消息能力是小程序能力中的重要组成,我们为开发者提供了订阅消息能力,以便实现服务的闭环和更优的体验。订阅消息推送位置:服务通知 订阅消息下发条件:用户自主订阅 订阅消息卡片跳转能力:点击查看详情可跳转至该小程序的页面使用说明步骤一:获取模板 ID在微信公众平台手动配置获取模板 ID:登录https://mp.weixin.qq.com获取模板,如果没有合适的模板,...
2020-04-09 15:18:04 2552
原创 spring boot对接支付宝支付
一、准备工作首先要到蚂蚁金服开发者中心https://openhome.alipay.com/platform/home.htm注册商家账户,并认证。 下载java版的sdk和demosdk&demohttps://docs.open.alipay.com/270/106291/下载地址 将sdk加入到项目中,在项目根路径下新建libs文件夹,将jar包复制进去,我使用...
2019-10-23 10:38:47 1377 2
转载 spring boot常见面试题
1.什么是Spring Boot?多年来,随着新功能的增加,spring变得越来越复杂。只需访问https://spring.io/projects页面,我们就会看到可以在我们的应用程序中使用的所有Spring项目的不同功能。如果必须启动一个新的Spring项目,我们必须添加构建路径或添加Maven依赖关系,配置应用程序服务器,添加spring配置。因此,开始一个新的spring项目需...
2019-10-23 10:00:15 142
原创 Filter+Listener的简单使用
Filter+Listener8-31,星期四 8:52:31Web三大组件1. Servlet2. Filter3. ListenerFilter 过滤器过滤请求使用步骤: Filter的使用方式与Servlet基本相同1. 编写一个类 实现Filter2. 在web.xml中 进行配置代码实现package cn.xdl.f
2017-08-31 20:08:52 751
Mate Translate – 翻译器、词典 10.1.16
2023-03-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人