- 博客(50)
- 资源 (1)
- 收藏
- 关注
原创 Spring Bean加载优先级
@ConditionalOnMissingBean / @ConditionalOnBean 与 Bean 的加载优先级分析
2024-03-23 23:53:13
1741
2
原创 从架构角度结合分布式缓存和本地缓存
在工作中,有时候会碰到这样一种情况,一个产品本身就是以一个单体应用去开发设计的,但架不住规模的变化,需要调整为多节点集群部署。那碰到这种既需要单节点部署,又需要多节点分布式部署的场景,缓存业务如何进行自适应调整。
2024-03-23 23:48:35
1546
2
原创 关于@TransactionalEventListener的理解
在Spring Boot应用中,事务是一个非常重要的概念。当应用需要执行一系列的操作,并且这些操作必须在一个事务内执行时,我们就需要使用事务管理。Spring Boot提供了一种非常便捷的方式来处理事务,即使用@Transactional注解。但是,在某些情况下,我们需要在事务完成之后执行一些额外的操作。这时,我们可以使用@TransactionalEventListener注解来监听事务完成事件。
2023-04-03 23:30:14
1784
原创 Spring Security 权限控制
Spring Security 是一个为 Java 应用程序提供身份验证和授权功能的强大框架。其中一个核心特性就是能够为特定的资源强制执行权限和访问控制规则。本文将探讨 Spring Security 权限控制的场景、使用和实现原理
2023-04-02 12:09:08
2650
原创 自定义实现类加载器+打破双亲委派模型思路分析
周志明老师新书:凤凰架构public class MyClassloaderTest { static class MyClassLoader extends ClassLoader { private String classPath; public MyClassLoader(String classPath) { this.classPath=classPath; } /** .
2021-08-30 15:48:33
287
原创 解决dubbo3.0项目中zookeeper连接失败的问题
问题描述:Springboot整合dubbo3.0.1<dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>3.0.1</version></dependency><!--zookeeper 注册中心客户端引入 使.
2021-08-10 15:22:06
1856
原创 MyBatisSQL参数占位符与全局属性useActualParamName详细介绍与原理剖析
MyBatisSQL参数占位符与全局属性useActualParamName详细介绍与原理剖析
2021-04-03 16:48:42
2966
2
原创 SpringCloud使用zookeeper作为配置中心并整合zkui可视化zookeeper界面
华丽的跌落,胜过无谓的徘徊zookeeper作为一个分布式协调框架,其中的( Node结点+Watch机制 )的特性注定了它可以随意扩展新功能,是一款优秀的分布式协调组件。zookeeper最常用的就是作为微服务开发的注册中心,实现分布式锁,leader选举等功能。在实际的额开发中,测试到zookeeper作为配置中心也是不错的选择。本次测试使用的SpringCloud版本是2020版本,从命名上,Spring Cloud 废除了这种英国伦敦地铁站的命名方式,从而使用了全新的 “日历化” 版本命名.
2021-03-30 12:12:27
698
原创 关于guava cache实现本地热点缓存
我们栖息的桌子飘向麦地我们安坐的灯火涌向星辰某些热点数据在短时间内可能会被成千上万次访问,在使用Redis作为缓存的前面可以使用本地缓存(JAVA虚拟机JVM缓存)作为一级缓存,把数据放到本地内存,减少服务端到Redis取数据的网络开销,减少RedisServer压力,进一步提高性能。本次场景是秒杀模块使用缓存对不可变的商品信息等进行预热。我们可以使用google的guava cache组件实现本地缓存,之所以选择guava是因为它可以控制key和value的大小和超时时间,可以配置LRU策略且.
2020-09-06 13:19:21
963
原创 Redis序列化存储及其日期格式问题
万花从中过片页不沾身在模块开发中,使用Redis做缓存是非常常见的技术,当我们注入RedisTempate模板时redisTemplate.opsForValue().set("item_"+id,itemModel,10, TimeUnit.MINUTES);key我们可以用固定开头和商品id进行拼接,当然正常的项目开发中最好使用多级目录进行分类,这里只做演示使用可视化界面看到保存的数据是这样的这样的数据是很不容易阅读的,原因是Redis默认使用的是JAVA序列化方式,在序列化时使用了.
2020-09-05 13:12:41
5072
原创 SpringBoot内嵌Tomcat并发容量问题
这里是引用并发容量问题发现并发容器问题在做一个关于秒杀系统的模块,进行Jmeter压测性能的时候发现tomcat并发上不去,深入原因找到可供优化的地方,力求最大性能。发现并发容器问题对单接口进行5000线程压测,每个线程请求10次,线程在10秒内创建完毕,当进行一半的时候,已经出现了请求响应时间过大及其错误率达到了100%。...
2020-09-03 14:24:00
7584
6
原创 new一个对象竟然不是原子操作?
那时你怎么说你说对我的牵挂一朵朵尤其是在犯困的夏日午后那时你怎么说你说大雨都是乌云在解脱叫我赶紧回家钻进被窝首先需要肯定的是:new操作不是原子操作!public class Demo2 { public static void main(String[] args) { Demo2 demo2 = new Demo2(); }}直接看main方法的字节码重点4行字节码0 new #2 <work/Demo2>3 dup4 inv.
2020-06-27 13:48:10
3545
6
原创 为什么SELECT * 查询效率低
看着你满怀期待的脸不经意间冲破了我对你的平淡心头一酸内心又有点波澜这是否存在隐患还是暗示某种惨淡关于MYSQL语句优化的问题,老生常谈,什么尽量避免使用SELECT * ,尽量避免条件使用or,加上limit限制行数…就在上周,公司的一个项目,功能是在发布文章时不发布保存草稿后,打开草稿重新发布时,地区的name不显示的BUG,主管让我排查了代码,原来是在写sql语句时没有对地区name的字段进行查询。这时候我勤劳的优点就展现出来了,把那几个字段加上就好了,虽然脑海里浮现出了一个小星星.
2020-06-25 12:56:08
504
原创 web端java实现url下载接口
其实没那么糟糕只是你等的人还没到内心的山川河流你都已经备好只等大雁回归在屋檐下筑个巢方式一,非Spring环境,纯JAVA类public void download(String href, HttpServletRequest request, HttpServletResponse response) throws Exception { String fileName = href.substring(href.lastIndexOf('/') + 1); .
2020-06-21 20:34:20
780
原创 【SpringBoot深入理解源码】之Bean的实例化解析
纵有疾风来人生不言弃。前情回顾【SpringBoot深入理解源码】之自定义系统初始化器【SpringBoot深入理解源码】之系统监听器文章目录IOC思想Bean的配置方式XML注解源码解读refresh方法Bean实例化解析IOC思想Spring对Bean的管理就是IOC思想的体现。耦合性灵活性可维护性Bean的配置方式XML首先定义一个实体类和调用Servicepublic class Student { private String name; pri.
2020-05-19 13:37:18
1036
原创 【SpringBoot深入理解源码】之系统监听器
万物皆有裂痕那是光照进来的地方。文章目录监听器模式系统监听器系统监听器系统广播器系统事件监听事件触发机制加载定义的监听器获取符合条件的监听器自定义监听器实战实现方式为什么ThirdListener设置的优先级低,却加载快总结监听器模式在编程的世界中,监听无所不在,譬如你点击一个音乐播放器的播放按钮,就播放一首音乐;点击相机的拍照按钮,就拍一张照片。也就是你触发某种行为,便会执行具体的动作。四要素事件------顾名思义,事件发生的源头,比如点击的按钮,属于被监听的对象;监听器-----.
2020-05-18 12:57:05
1281
1
原创 【SpringBoot深入理解源码】之自定义系统初始化器
有人辞官归故里有人星夜赶科考前途似海来日方长。文章目录实现实现方式测试为什么ThirdInitializer第一个执行?注意如何被系统容器所识别并注册进去SpringFactoriesLoader源码SpringFactoriesLoader加载流程及作用实现实现方式方式一(推荐)实现ApplicationContextInitializer接口@Order(1)public class FirstInitializer implements ApplicationContext.
2020-05-17 15:41:54
642
转载 使用Docker一键搭建FastDFS+Nginx分布式文件服务器
满船清梦压星河 偷捧时间煮酒喝转载文章:使用Docker一键搭建FastDFS+Nginx分布式文件服务器
2020-05-11 19:26:09
647
原创 面试高频考点之三次挥手和四次握手
你住的城市 下雨了很想问你有没有带伞可是我忍住了因为我怕你说没带而我又无能为力 就像我ai你却给不到你想要的陪伴。三次握手和四次挥手是各个公司常见的考点,也具有一定的水平区分度,也被一些面试官作为热身题。不管是做开发还是计算机哪个行业,网络技术都是离不开的。而不是这样的面试场景面试官:请介绍一下三次握手求职者:三次握手主要操作就是客户端给服务端,服务端给客户端,客户端再发给...
2020-04-29 22:12:44
1199
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人