- 博客(19)
- 收藏
- 关注
原创 深入探索Springboot2.x依赖注入Bean的CGLIB代理类
笔者最近在做一个功能,使用了工厂模式/策略模式设计的,定义了一个接口,下面有多种实现并通过@Component注解定义为Bean,在运行时根据不同的业务调用不同实现的Bean,所以需要在运行时动态获取Bean。但在开发的过程中通过IDEA的debug功能,发现从applicationContext中获取的Bean中的成员变量都是null,而且莫名其妙多了很多"CGLIBS$CALLBACK_"+数字的成员变量。
2024-09-04 13:38:03
777
原创 Nuxt2 渲染时html比css加载快,导致闪屏/CSS样式迟滞/抖动问题记录
在刷新页面时先加载出HTML代码,此时页面就是一个完全没样式的很丑的纯html页面,要等0.5秒-1秒后才加载出CSS样式并渲染出最终带样式的页面。这一闪而过的纯html就很难受了,也非常影响用户体验
2024-03-27 18:47:13
1536
原创 dubbo3+sleuth+brave实现链路追踪及traceId未传递或不对应的原因分析
基于SpringCloud Sleuth+Brave实现dubbo3的链路追踪方案,并剖析链路追踪信息无法正确传递的原因。
2023-08-30 11:25:00
811
1
原创 nacos-server(服务端)开启auth鉴权后,客户端请求返回403/503/unknown user问题
问题场景Nacos要部署到阿里云上面,并给其他服务器访问,但这样就会存在安全问题,这个问题在Nacos的官方开发手册上也有描述,连Nacos控制台的登录界面也写着“内网系统,不可暴露到公网”。所以这时就需要考虑到部署到外网的Nacos安全问题。疑问你可能会问:nacos不是有账号密码登录的吗?nacos控制台(注意!是控制台!)确实有账号密码登录机制,但服务注册和服务发现并没有,所以居心叵测的人如果知道你外网Nacos的IP和端口,理论上可注册一个同名的服务到你的Nacos上,那么这时就会出大问题了
2022-05-10 21:00:00
8212
原创 Spring Gateway跨域问题
问题场景Gateway如果是单纯的跨域问题其实很好解决,CSDN上面也有很多文章关于Gateway跨域的。我同样也是按照这些文章来解决跨域问题。但是一测试发现前端各种报错:// 浏览器console报错1:The 'Access-Control-Allow-Origin' header contains multiple values 'http://xxxxxx, http://xxxxxx', but only one is allowed.// 浏览器console报错2:The 'Acce
2022-05-10 20:45:00
1815
原创 Spring Security authenticationManager()返回null,必须定义authenticationManagerBean的原因分析
问题场景:最近在研究spring cloud alibaba微服务,也研究到了OAuth2.0第三方授权。在实现的过程中决定使用成熟的spring security框架作为来实现授权登录及第三方授权功能。但在整合的过程中遇到了一个奇怪的问题。即两个springboot应用,都在同一个maven父工程下,两个应用的依赖是一样的,依赖的版本也是一样的,并且两个应用的Security配置类(即extends了WebSecurityConfigurerAdapter的配置类)都是一样的。但一个能正常运行,另外一个
2022-04-26 12:50:28
9215
3
原创 livego介绍、安装、使用详解
前言写这篇文章主要是因为希望找到一个简单的方式实现直播功能,在度娘上找到livego(我平时写php和前端的,不懂golang),感觉安装部署都很方便,即使不懂golang的同学,只要有一定Linux和web后端开发知识都能搭建自己的直播服务。但是livego的文档的确比较少,然后对于我这个面向搜索引擎开发的菜鸟来说,连度娘也只找到为数不多的几篇相关博客文章,所以最后只能自己看GitHub的issue和反复测试趟坑,最后打算记录一下自己的趟坑过程也分享一下给各位小伙伴,希望对你们有帮助。以下是正文:介绍
2021-10-12 11:34:12
10874
2
原创 TP5中模型使用join关联查询时,出现找不到表的情况
问题场景:tp的大版本为5.0模型之间是一对一的join形式关联,不附加筛选条件的情况下查询是正常的,但是一旦附加了时间范围查询就报错了,报:表不存在错误问题排查:经过排查发现是因为使用了tp的between time导致的。源码分析:经过分析tp5的框架源码,发现具体原因出在:thinkphp/library/think/db/Builder.php的parseDateTime方法中,parseDateTime单纯靠list($table, $key) = explode('.', $key)
2021-01-27 17:14:00
967
原创 TP5模型验证器自定义验证规则无效
这个问题比较少见,在开发文档中也没有提到,具体场景如下://实例化验证器$ruleValidate = Loader::validate('TestRule');//自定义验证规则$ruleValidate->rule([ 'name' => 'require']);$model = new TestModel;$result = $model->validate()->save($someData);以上代码正常来说是会正常执行的,但是...
2020-11-05 12:20:48
1296
原创 tp5和tp5.1的模型中append属性覆盖关联模型的情况
问题描述:tp5和tp5.1的模型中是可以定义append属性的,用于追加要输出的字段。但是这里要注意一个问题,就是append属性中定义的字段名称不能与关联模型的函数名重名问题定位过程这个问题一开始我以为是关联模型的函数名中的大小写、下划线、数字(刚好我那时要关联模型的字段是有数字的)问题,但是后面通过创建一个最小模型一段段的屏蔽代码来测试,才定位问题。PS:这个问题是不会报错的,而且在...
2020-05-05 13:06:12
5260
原创 tp5关联模型限制输出字段(field方法)时,模型无法正常关联的情况
问题描述:无论在tp5还是tp5.1中如果进行模型关联时,使用了field方法限制字段输出,就有可能会导致模型无法关联的情况。明明数据库表中有对应的数据,但就是没有关联输出。问题原因:这种情况主要是因为模型关联是需要用到关联字段,如果没输出,就会导致模型无法正常关联,而且这种问题框架不会报错的。如果不知道这个问题的同学,就很难定位问题了。解决方案:1、visible方法隐藏其实这个问题...
2020-05-05 12:35:10
2576
原创 array_column函数在PHP5和PHP7中的表现不一致
之前在开发的过程中遇到的现像,但是当时没有报错,所以我也查了很久才发现这个问题。array_column函数在PHP5和PHP7中的表现不一致。PHP7中array_column函数可以抽取到对象中的属性。但PHP5中是抽取不到对象中的属性的,只能抽取数组中的元素。...
2020-03-11 10:51:40
740
原创 MySql在数据量不大时却出现MySql崩溃、无法连接
mysql如果并发量不大或者服务器配置不高(只有1-2G内存)时,需要在配置文件中配置几个参数,以减少内存占用。如果不自定义配置这些参数,使用mysql的默认参数,会导致mysql内存占用过高的问题排查过程:1、tp5.1框架报错,日志显示无法连接数据库,但我操作的数据量非常少,正常是不会出现这种情况2、在服务器上用top查看内存情况,发现写入操作时mysql的内存消耗飙升到50%(我的腾讯...
2020-01-15 11:36:36
651
原创 tp5.1前后端分离的情况下调用验证码功能
由于tp5.1的验证码功能是基于session的,在前后端完全分离的情况下,如果状态保持的方式又是以token方式,那么用起来就不是太方便了。所以我改装了一下tp5.1的验证码功能模块,通过cache的方式实现前后端分离的情况下,对验证码进行验证。但是这种改装也有其弊端与考虑不周的情况,目前可预见的一个弊端是:在高并发的情况下,验证码不一致也有几率验证通过。详细步骤如下:captcha类的e...
2020-01-15 10:56:09
3660
6
原创 tp5或tp5.1使用了事务,即使事务报错也有部分数据被写入的情况
在tp5或者tp5.1的事务中踩了不少坑,所以在这里分享一下自己趟过的坑。tp事务中遇到过不少的情况导致事务没有正确回滚的。tp5及tp5.1如果没有任何数据更新是不会报错的,这个坑可以详细参考我之前的一篇博客文章: tp5或tp5.1中启用了事务,但没有正确回滚基于mysql的事务特性:事务必须是在同一个数据库连接中才能生效。tp5.*中的事务也必须在同一个数据库连接当中。但是!...
2020-01-14 16:31:26
1306
原创 tp5.1中的关联统计别名问题
需求:tp5.1的关联统计功能中,如果用了闭包函数,但同时又想设置别名解决办法:可以在闭包函数中return一个字符串,这个字符串就会被用作别名。例如:想要withSum的别名是abc,那么就在withSum的闭包函数里写上:return ‘abc’;$test= new Test;$data = $test->withSum(['aaa'=>function($query...
2019-11-20 23:17:51
1955
1
原创 vue对data中的数组操作时出现错误渲染的情况
vue当中对于数组元素不仅要用push、splice等方法进行修改,而且修改前后对象的属性必须完全一致(不能少了一个属性或者多了一个属性)否则会导致数据错误的渲染(错误渲染的情况不知道是elementUI的组件问题还是vue本身是这么限定的)但以后进行数组操作的时候,还是遵守这个规范比较好。//源数据:let data = { id:1, service_id:2, c...
2019-11-20 22:58:06
1472
原创 tp5或tp5.1中启用了事务,但没有正确回滚
tp5或tp5.1中的自动事务没有正确回滚问题在tp5或tp5.1中的事务,无论自动事务还是手动事务,只有sql执行报错了才会中断执行并回滚,但如果sql没报错,只是影响行数为0(什么都没插入或更新),事务最后是会被提交的!这个在用tp5或5.1的事务的时候务必注意,不然就会出现用了事务,但依然把错误数据写入的情况。解决方案://首先,全部事务都改用手动事务,不要用自动事务// 启动事务...
2019-11-20 18:27:46
3865
2
原创 tp5.1引用第三方库的两种方法
tp5.1引用第三方库方法:因为tp5.1、tp6已经不支持loader类了,无法通过loader类引入第三方类。所以只能通过composer来引入第三方类。同时,也建议各位小伙伴也慢慢习惯用composer吧,因为用惯了composer其实很方便的。如果用过npm的同学应该了解包管理工具的重要性。tp5.1引用第三方库两种方法:1、composer方式:第一步:安装composer:...
2019-11-14 15:15:53
2197
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人