- 博客(20)
- 资源 (2)
- 收藏
- 关注
原创 关于SpringBoot自动配置类的加载顺序
在刷新上下文的时候,AnnotatedBeanDefinitionReader会调用已经注册的BeanFactoryProcessor,首先调用的是BeanDefinitionRegistryPostProcessor,也就是ConfigurationClassPostProcessor的postProcessBeanDefinitionRegistry()方法。@EnableXXX注解上要有@Import表示要导入的类,一般是要扫描的注解,如MyBatis扫描带有@Mapper注解的接口。
2024-12-22 23:27:03
580
原创 关于OpenFeign中关键组件的说明
AsyncFeign定义了AsyncBuilder.不同的Builder构造出不同的Feign对象,不同Feign对象的newInstance()构造出不同的代理。写在最后,feign还有一个异步客户端AsyncClient,看它默认实现的源码,有一个Client和一个ExecutorService,只是使用了线程池的方式调用Client接口,使用的是Composite组合模式。使用抽象工厂模式,应该是为了应付不同的场景,同时保持主流程的一致性,不必再主流程中进行各种if-else的判断。
2024-12-19 22:38:41
923
原创 关于Eureka关键组件的说明
其次,若eureka.client.fetch-registry=true,从EurekaServer全量或增量拉去服务信息,若拉取失败则从用服务注册中获取服务,若依然失败且eureka.client.should-enforce-registration-at-init=true,抛出异常,终止流程。DiscoveryClient按照源码中文档的解释,是EurekaClient所有组件中的基础组件,所有上层的客户端实现使用这个组件作为代理,同时提供其他更加丰富的功能。
2024-12-15 23:12:36
383
原创 SpringCloud是什么?
OpenFeign提供了一种声明式的HTTP调用方式,使远程调用像本地方法调用一样便捷,只需要定义接口,并加上制定的注解,就可以注入到需要的地方进行HTTP访问。分布式系统中,各系统的交互不可避免,同时由于使用了集群的方式来提高系统的可用性和可靠性,以往的配置单个服务地址的方式已经适用。在学习完SpringBoot之后,慢慢了解到SpringCloud是分布式系统的一站式解决方案集合,对应分布式系统遇到的大多数问题系统问题都有对应的解决方案,可能不是最优的,但确实各种问题解决方案集成最好的。
2024-12-13 23:42:31
433
原创 关于Spring的一些理解
但胖子不是一天肥的,需要开发者慢慢的掌握,慢慢的熟悉,总有一天所有的Java开发者都能成为专家。Spring在英文词典中的意思是春天的意思,可能是因为它的诞生意味着Java开发者春天的到来,事实上也确实给Java开发者带来了巨大的便利,只需要简单配置就能快速的搭建一个Web应用。约定优于配置的原则和丰富的开源组件提高了Java开发者的效率,但随之而来的是每次接入一个组件都需要进行各种或简单或复杂的配置,这一部分需要开发者对所使用的组件有比较深刻的理解,对开发者来说非常不友好。
2024-12-09 23:43:11
375
转载 springcloud配置集群需要注意的点(初学者)
考虑到注册中心的高可用,今天搭建一下eureka集群,并在中途遇到一些小的坑,前前后后花了两个小时来排除,在这里记录一下,以供后面查看。 首先,贴上要达到的效果: 一、起两个eureka模拟集群,在DS Replicas中显示集群中的其他成员。 二、在注册服务列表中正确显示我们注册了两个注册中心。 三、available-replicas中正确显示集群中的其他注册中心。1、用IP而非主机名配置注册服务。 最开始,我并不想使用主机名来注册服务中心,我想直接使用IP,然后.
2020-09-19 17:46:14
331
原创 鸟哥的Linux私房菜学习心得-基础操作
《鸟哥的Linux私房菜》特别适合新手作为Linux的入门教材,即使没有计算机知识基础也能学明白,鸟哥算是很用心了。半个月来学习了鸟哥主页教程的基础篇,感觉良好,因此特意写下学习的感受,以期和各位感兴趣的小伙伴共勉。 鸟哥的教程主要是讲述Linux的方方面面,内容非常的多但却是有结构而言的,虽然不一定在工作中能用上全部的内容,但如果出现了问题至少可以知道解决问题的思路。一下将Linux的命令按操作对象的不同进行了分类: 1.磁盘操作主要的命令: ...
2020-07-26 16:56:16
918
原创 SpringMVC源码之DispatcherServlet
DispatcherServlet是SpringMVC的核心类,所有其他的组件如拦截器,适配器,视图解析器等都是在这个servlet中应用,所以明白DispatcherServlet的初始化流程以及执行请求的流程就很重了。基于自己看的源码和自己的理解,写一个关于SpringMVC的小系列,如有错误,望各位看官不吝赐教! 1.DispatcherServlet 的继承体系如下:...
2020-03-06 20:38:43
232
原创 两年Java工程师开发技术使用和感受
Java提供了丰富的功能,能满足大多数业务和技术要求场景,但Java本身提供的这些功能并不是太好,因此便有了各种各种的框架;比如Java的日志系统,对应的框架有log4j,log4j2,logback,slf4j等等;Java的线程池,对应的框架有c3p0,druid等等。所有的Java框架都在Java本身中有对应物。所以在目前的Java开发中要引入各种不同的jar文件来满足快速开发...
2019-05-18 09:51:22
543
原创 第二节对象在内存中的布局及对象创建过程
理解对象的布局和对象的创建过程有助于理解锁和构造器的执行时机。对象在堆中的分布包含三部分:对象头,实例数据,填充区域。以下分别详细介绍。 对象头:对象头的数据结构是不是固定的,它会根据对象的状态动态的变化。对象都得大小时32bit/ 64bit(取决于你的系统是多少位的),里边存储了对象的hashcode,分代年龄,对象锁等信息,其中比较常用的是hashcode和锁信息。
2017-08-18 09:12:58
322
原创 深入理解JVM--我的学习笔记
现在转行做Java开发,相信有过Java开发经验的人都知道,做Java开发要学很多东西:JavaSE,JVM,设计模式,线程并发以及锁原理等等。虽然不多,但内容很有深度,需要反复的斟酌才能有更深一步的理解。本人近来在看《深入理解JVM》,但是怕看后又忘了或是理解不到位,不够深入。所以把看过的东西用自己的语言写在这里,共勉。 首先说一下为什么要学习JVM。JVM是Java程序运行锁
2017-08-16 16:00:24
418
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人