- 博客(93)
- 收藏
- 关注
原创 【Spring】关于Spring中aware相关接口的作用
完成了属性赋值之后,Spring会执行一些回调,包括: 1. BeanNameAware:回传beanName给bean对象。接口的回调方法是在 Bean 实例化之后调用的。具体来说,这些回调方法是在依赖注入完成后,但在 Bean 完全初始化之前调用的。通过这种方式,你可以使用纯 Java 配置来实现 BeanNameAware、BeanClassLoaderAware 和 BeanFactoryAware 回调。最后,编写一个主类来启动 Spring 应用,并获取 MyBean 实例。
2024-10-18 13:53:16 663 1
原创 【Spring】Spring和SpringMVC为什么需要父子容器
Spring和Spring MVC使用父子容器的设计模式,主要是为了实现更好的模块化和隔离,提高系统的灵活性和可维护性。具体来说,Spring应用通常包含两个层次的容器:根容器(Root WebApplicationContext)和子容器(Child WebApplicationContext)。
2024-10-12 17:35:15 755
原创 【Spring】@Autowired注解自动装配的过程
如果 @Autowired 注解上有 @Qualifier 注解,Spring会根据 @Qualifier 指定的名称来查找Bean。:如果 @Autowired 注解没有 @Qualifier 注解,Spring会尝试使用字段名或参数名作为Bean的名称来查找。如果容器中有多个匹配的Bean,可以使用 @Qualifier 注解来指定具体的Bean。:Spring会查找与 @Autowired 注解指定的类型相匹配的Bean。如果依赖是可选的,可以使用 required=false 属性。
2024-10-11 18:03:08 1215
原创 【Spring】Bean的生命周期
BeanPostProcessor 的 postProcessBeforeInitialization 方法:调用所有注册的 BeanPostProcessor 的 postProcessBeforeInitialization 方法。BeanPostProcessor 的 postProcessAfterInitialization 方法:调用所有注册的 BeanPostProcessor 的 postProcessAfterInitialization 方法。
2024-10-11 11:03:10 854
原创 基于Nginx搭建点播直播服务器
如果⼀切正常,那么就会在/usr/local/nginx目录下搭建起nginx服务,使用nginx -v,能看到版本输出,就表示,nginx服务安装成功了。这通常是因为 /usr/local/nginx/sbin 目录没有被添加到系统的 PATH 环境变量中。将 /usr/local/nginx/sbin 添加到系统的 PATH 环境变量中。当然,NGINX本身是不⽀持视频的,需要为NGINX增加相应的RTMP模块进行支持。实现直播和点播离不开服务器⽀持,可以使用开源的NGINX服务器搭建直播和点播服务。
2024-09-23 10:57:22 629
原创 【Docker】Docker上安装MySql8和Redis
对于镜像中需要持久化保存的⽂件,需要通过-v挂载到宿主机上,这样这些⽂件才不会随着容器关闭⽽消失。对于MySQL,需要将他的⽇志⽂件、数据⽂件和配置⽂件挂载到宿主机上。同样,需要注意将Redis的配置⽂件和⽇志⽂件挂载到宿主机上。
2024-09-20 16:33:23 557
原创 【JVM】符号引用 和 直接引用
简单来说,解析阶段就是将类文件中的符号引用(比如方法名、字段名等)转换成可以直接访问的内存地址或其他形式的直接引用的过程。这个过程确保了虚拟机在执行字节码时能够准确地找到需要调用的方法或访问的字段。
2024-09-13 16:33:30 869
原创 【Java基础】关于序列化和反序列化
就像你寄给朋友的礼物,无论朋友在哪里,无论他们用什么工具打开包裹,里面的东西都应该是一样的。所以,序列化就像是打包礼物的过程,让数据能够在不同的地方和不同的系统之间被理解和使用。而反序列化就是拆礼物的过程,把收到的简单格式的数据还原成原来复杂的对象。:当你把一个复杂的对象序列化后,它就变成了一个简单的字符串或字节数组,这使得你可以很容易地处理和传输这些数据,而不用担心原始对象的复杂性。:如果你想要保存一个程序的状态或者某个时刻的数据,你需要把它们变成文件保存起来,这就需要用到序列化。
2024-09-12 10:29:19 260
原创 【JAVA】解析Json字符串常见方式
首先,我们定义一个简单的 Java 类来表示 JSON 数据的结构。假设我们有以下OrderDto类@Override'}';
2024-08-28 10:29:52 454
原创 生成当天的开始时间和结束时间
获取当前日期:计算今天的日期:获取一天的最小时间:构造当天开始时刻的 LocalDateTime 对象:格式化 LocalDateTime 为字符串:如果当前日期是 2023 年 8 月 27 日,该方法将返回 。
2024-08-27 17:45:44 232
原创 【Docker】Docker上安装rocketMQ
刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盘和异步刷盘;SYNC_FLUSH消息写入磁盘后 才返回成功状态,ASYNC_FLUSH不需要;#有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;#broker名称,master和slave使用相同的名称,表明他们的主从关系。# 设置broker节点所在服务器的ip地址 换成自己的主机ip。#0表示Master,大于0表示不同的。#在磁盘上保留消息的时长,单位是小时。拉取不到镜像的看前面的帖子。
2024-08-27 15:58:05 528
原创 【分布式】分布式Session共享
这里通过SpringSession来实现Session的共享,Session数据存储在Redis中。默认存储在redis db0,若想自定义设置。设置对应的配置(yaml文件或者其它)在各服务的启动类上添加注解。
2024-08-23 11:58:03 453
原创 【Docker】安装Docker环境遇到的坑(VirtualBox)
如果报错缺包,缺哪个就执行下面哪个,网上一堆帖子中的地址镜像仓库许多已经失效没有,会下载失败,那么就去以下提供的网址去找,利用vagrant工具在VirtualBox安装CentOS7环境后,安装Docker环境遇到的坑。工具从阿里云镜像站点下载 CentOS 7 的仓库配置文件,并将其保存为。缺哪个就从以上网址找执行。安装docker CE。如果报错缺啥就安装啥。
2024-08-21 11:43:41 346
原创 【Linux】关于CentOS中的CentOS-Base.repo文件
baseurl适合于已经知道一个快速、稳定的 CentOS 镜像站点的情况。直接指向一个具体的仓库 URL。mirrorlist适合于希望系统自动选择最快镜像站点的情况。从列表中选择一个最快的站点进行下载。
2024-08-21 09:27:09 1721
原创 【安装】通过VirtualBox结合Vagrant来安装虚拟机
我们可以通过VMWare来安装,但是通过VMWare安装大家经常会碰到网络ip连接问题,为了减少额外的环境因素影响,以下介绍通过VirtualBox结合Vagrant来安装虚拟机。安装VirtualBox和Vagrant,傻瓜式安装。此处xshell登录,默认安装用户名为vagrant,密码在之前创建的文件目录下。找到对应的Vagrantfile文件,在你创建的文件下下面。第一次执行的时候会远程下相关的镜像文件,并启动虚拟机。创建一个空的目录,cmd切换到该目录中,然后执行。命令弹出如下内容表示。
2024-08-20 15:43:59 468
原创 【docker】关于挂载
在使用docker时,经常会用到以下这种这条docker run命令用于启动一个Elasticsearch实例,并配置了一些重要的参数。
2024-08-20 10:34:01 997
原创 【Docker】宿主机上装个ES和使用docker装个ES有啥不一样
直接在宿主机上安装Elasticsearch与在Docker容器中启动Elasticsearch的主要区别在于资源管理、隔离性、升级维护和配置数据持久化等方面。资源管理直接在宿主机上安装Elasticsearch会直接使用宿主机的资源。在Docker容器中启动Elasticsearch则通过容器进行资源管理,提供更好的隔离性。隔离性直接安装可能会与其他应用程序共享资源。Docker容器提供了更好的隔离性。升级维护直接安装通常需要手动操作。Docker容器可以更轻松地进行升级和维护。
2024-08-19 16:36:44 657
原创 【实战】分组校验
在实际的业务场景中同一个Entity的校验可能会有不同的规则,比如添加数据品牌id必须为空,而更新数据品牌Id必须不为空,针对这种情况我们需要使用分组校验来实现。在Entity中指定分组规则。
2024-08-19 11:04:22 169
原创 【实战】自定义注解的使用示例
这个注解表示@ListValue是一个约束注解,用于数据验证。当在一些业务实现代码中往往需要对传入实体或参数进行校验,为了使业务代码更加简洁清爽,有现成的JSR303,当有时这些不能满足我们的使用需求时,可以自定义注解.默认值为"提交的数据必须在数据列表中",这是当验证失败时返回的错误消息文本。这个方法定义了@ListValue注解的自定义属性val,用于指定需要验证的值列表。这个方法定义了注解的元数据,通常用于传递附加信息。当传入的状态值不在这以上就是,就会提示提交的数据必须在数据列表中。
2024-08-19 10:53:33 336
原创 【JAVA基础】Integer Long比较需要注意的点
这些包装类实现了对象的功能,例如可以为它们添加方法,同时它们也是可空的,也就是说你可以声明一个。为了提高性能,Java的自动装箱和拆箱机制会缓存一定范围内的。对象在该范围内不会被缓存,每次使用自动装箱时都会创建新的。之间,那么即使这两个值相等(数值相同),你也必须使用。对象都会生成一个新的实例,除非显式地创建缓存池。运算符比较的是对象的引用,而不是它们的值。方法,以确保比较的是它们的数值而不是对象引用。实例,即使数值相同,它们的引用也会不同。,没有默认的缓存范围,所以每次创建。范围内,由于缓存的存在,
2024-08-16 16:39:48 254
原创 【分布式系统】关于主流的几款分布式链路追踪工具
Jaeger强调标准化和广泛的兼容性,适合多样化的微服务架构。CAT在实时监控和低延迟报警方面表现出色,适合对实时性要求高的场景。SkyWalking提供了一整套可观测性解决方案,适合需要全面监控和智能分析的场景。紧密集成 Spring Cloud,适合使用 Spring Cloud 的项目。Pinpoint专为大规模系统设计,适合对性能和追踪精度有极高要求的场景。选择哪个工具取决于具体需求、技术栈、以及是否需要更高级的监控和分析功能。每种工具都有其独特的优势,适用于不同的场景。
2024-08-16 11:00:56 722
原创 关于路由和负载均衡
所以,你会根据每位厨师的忙碌程度,合理分配订单,让每位厨师的工作量相当,这样既能保证食物质量,也能让顾客等待时间缩短。在网络世界里,当许多用户同时访问一个网站或应用时,“负载均衡”就像是你这个经理,它会把用户请求合理分配给多台服务器,确保没有一台服务器过载,提高整体的响应速度和稳定性。地图告诉你从你现在的位置出发,应该先左转,再右转,走哪条街,过几个路口,直到找到目的地。每个数据包都有一个目的地的IP地址,路由器会检查这个地址,然后参考自己的“地图”(路由表),找到通往这个地址的最佳路径。
2024-08-16 10:20:46 822
原创 关于SOA和微服务
SOA是一个更广泛的概念,涵盖了多种服务架构的风格,服务的粒度可以从较大到较小。微服务是 SOA 的一个特例,它强调极小的服务粒度,每个服务只关注单一职责,独立部署和扩展。所以,微服务确实是面向服务架构的一种,但它通过进一步细化服务的粒度,实现了更高的灵活性和可维护性。
2024-08-16 09:58:07 785
原创 【URL】%5B %5D %7B %7D %22 %3A %2C都是啥
这种编码方式叫做百分号编码(Percent-Encoding),也被称作URL编码,用于在URL中表示那些在正常情况下不能直接出现在URL中的字符。在构建URL时,如果URL中包含了JSON数据或者其他需要特殊字符的数据,就需要使用这些编码来确保这些字符能够被正确传输而不被解析器误解。分别代表了一些在URL中需要特殊处理的字符,因为这些字符在URL中有特殊的含义或者在传输中可能会被误解。. 逗号在JSON中用于分隔数组或对象中的元素,但在URL中可能被误读为参数之间的分隔符,因此需要编码。
2024-08-15 10:39:16 712
原创 【Java基础】循环标签的使用
只会退出最内层的循环。如果你想从更外层的循环中直接退出,就需要使用带标签的。然而,当你的代码中有嵌套循环时,普通的。但是,如果我们的意图是当。语句用于立即退出当前的循环结构(循环,我们应该使用带标签的。在上面的例子中,如果。循环,而不是仅仅退出。
2024-08-14 17:39:15 334
原创 【网络通信】关于TCP和HTTP
TCP关注的是数据的可靠传输,它是互联网的基石,确保了数据在网络中能够安全到达。而HTTP则是在TCP的基础上,为Web应用提供了一套高级的通信协议,它不仅仅关注数据的传输,更关注数据的语义和应用层面的交互。HTTP通过定义一系列规则和标准,使得Web应用能够以更加智能、高效、安全的方式进行数据交换和信息共享。
2024-08-13 10:35:16 773
原创 【xxl-job】源码中策略模式的使用
1、ExecutorRouteStrategyEnum 工厂枚举类。使用到了工厂枚举,抽象策略类以及具体策略类。
2024-08-12 17:37:22 247
原创 【JAVA基础】Class对象扫盲贴
Class这东西真的是基础中的基础,先不整专业的说辞:在Java中,每个类都有一个对应的Class对象,这与通过new关键字创建的具体对象实例是不同的。
2024-08-09 11:29:57 294
原创 【Java基础】向下转型
在游戏世界中,“战士”、“法师”和“盗贼”都是“玩家”的子类,也就是说,他们拥有“玩家”所具有的所有属性和能力,同时他们还有自己独特的技能和装备。当你在游戏中遇到一个“玩家”时,你只知道他有基础的能力,但如果你得知他实际上是一位“战士”,你就可以使用更多特定于“战士”的功能,比如让他挥舞一把巨大的剑。想象一下,你正在参加一场角色扮演游戏,游戏中有各种各样的角色,比如“玩家”、“战士”、“法师”和“盗贼”。现在,如果你想让一个“玩家”使用“战士”的特殊技能,你需要先确定这个“玩家”实际上是不是一个“战士”。
2024-08-08 16:57:26 513
原创 【Spring】关于CommandLineRunner 和 SmartInitializingSingleton
触发时机在所有Bean定义加载后立即执行,而在所有单例Bean实例化完成后执行。依赖关系不依赖于其他Bean的初始化状态,而可能依赖于其他Bean的状态。使用场景适用于那些需要在应用启动后立即执行的简单任务,而适用于那些需要在所有服务Bean都准备就绪后执行的复杂初始化逻辑。简单来说,是“派对刚开始就上场的DJ”,而是“派对一切准备就绪后的总策划”。两者各有侧重,根据你的应用需求选择合适的一个或组合使用。
2024-08-08 16:31:03 984
原创 【JAVA基础】关于Hashtable,真别觉得它没用
的键值对存储和线程安全特性,同时添加了对配置文件读写的支持,以及对配置数据的默认值和类型转换的处理,使其成为一个专门用于处理配置信息的类。,意味着它也具备了键值对存储的能力,可以存储配置信息,其中键通常是配置项的名称,值是对应的配置值。类在Java中是一个非常常用的类,尤其在处理配置文件或需要键值对存储的场景下。由于更好的性能和更丰富的功能而更受欢迎,但在特定的场景和历史遗留系统中,是一个键值对的集合,它提供了一个简单的方式来进行数据的存储和检索。:在一些简单的、对性能要求不高的场景下,使用。
2024-08-08 11:41:29 272
原创 【Spring】关于AutowireCapableBeanFactory
现在,你想要制作一道新菜,但这道菜的配方是灵活的,可能需要不同的配料,也可能需要用到一些特殊的厨具,这些选择是在你开始做菜的时候才决定的。,就相当于你有了这位全能的厨房助手。这样一来,即便这个对象最初不是Spring创建的,它也能享受到Spring的依赖注入服务,就好像它是Spring的一部分一样。它会帮你找到那些依赖对象,并把它们“注入”到你新创建的对象中,这样你的对象就有了它需要的所有“工具和材料”。想象一下,你有一个对象,可能是你自己创建的,或者来自第三方库,这个对象并没有通过Spring的。
2024-08-07 15:56:56 933
CentOS镜像:CentOS-7.3-x86-64-Minimal-1611.ISO 包,可用于本地虚拟机测试用
2023-08-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人