- 博客(22)
- 资源 (1)
- 收藏
- 关注
原创 openfeign的使用原理(二)
在上一篇文章中,我们谈了openfeign借助一系列自动配置类帮我们自动创建feign client对象的一个过程,在文章最后,我们也提到,openfeign帮我们创建的feign client对象其实是一个代理对象,本篇我们将继续探讨下feign client代理对象的生成过程,由于相关代码不算太难理解,本篇文字并不多,主要是以展示源码内容为准。
2024-02-19 16:50:44 1110 1
原创 openfeign的使用原理(一)
*** feign客户端配置*/@Bean@Bean实现了feign自身的RequestInterceptor请求拦截器接口,用来往请求头设置token认证信息,基于openfeign的请求在从客户端发出去之前,都会先经过这些拦截器的处理。过滤器,用来完成一些鉴权操作,此处只是做了一些样例。
2023-09-23 17:50:46 244
原创 openfeign的实际应用
在谈openfeign之前,我们先说下另一个框架:feign。feign是一个声明式的web服务客户端框架,它提供了一些注解,只要将它们加到某个接口和接口内部的方法上,那就可以很方便地直接用这个接口来开发http客户端代码。再细化来说,就是能让我们写更少的代码来访问服务端的http接口。拿我们熟知的jdk自带的HttpURLConnection类来说,我们要是使用它来访问http接口,加上解析http接口响应的数据,写个十几二十几行代码都是很正常的,就算是用apache的httpClient框架,也是如此。
2023-07-15 16:32:48 838
原创 spring cloud负载均衡是怎么实现的
负载均衡,它的含义简单理解就是当访问一个应用集群的时候,尽可能使请求均匀地落到集群中的某一台机器中,不至于使某一台机器的接收的请求过多。也即是说,因为先有了集群,所以才会有负载均衡这个概念。当访问单机的服务时,谈不上负载均衡。负载均衡,又分为客户端负载均衡和服务端负载均衡。(1)客户端负载均衡客户端负载均衡指的是当客户端要调用远程服务的时候,自己决定要调用远程服务中的哪一台机器。
2023-06-14 14:06:13 491
原创 spring cloud集成nacos,就是这么简单
nacos具备配置管理和服务注册发现的功能,官方建议是只在内网部署nacos服务,不要将其暴露到公网上。本篇我们讲一下如何在spring cloud应用中使用nacos的配置管理和服务注册发现的功能,在执行本文的各个操作前,请确保本地的nacos服务已正常启动。后面在系统中添加依赖,默认pom文件已包含如上的内容。
2023-06-05 08:57:10 486
原创 springboot集成nacos服务注册发现中心
之前我们谈了springboot集成nacos配置中心的功能使用,用起来确实很简单。本篇我们要谈下如何在springboot中使用nacos另一项重大的功能:服务注册和发现。本篇我们以springboot 2.7.0版本为例讲解集成nacos服务注册和发现中心的功能。
2023-05-31 08:16:17 695
原创 springboot集成nacos读取nacos配置数据的原理
先前我们说了springboot应用集成nacos配置中心的过程,只需要引入一个jar包并在业务系统的配置文件中添加相关的nacos配置项,我们的系统就能获取到nacos服务上面维护的配置数据,那这个获取配置数据的原理是啥呢?接下来咱们就来聊聊这一块~
2023-05-28 10:54:23 1539
原创 springboot集成nacos配置中心
之前我们谈了nacos的安装及基本的配置管理相关的功能使用,本篇我们聊下如何在项目中对接nacos服务。nacos本身是包含配置中心和注册中心的功能,如果我们只把nacos作为配置中心使用,那么我们就只需要集成nacos官方提供的用于springboot应用对接nacos配置中心的sdk包。本篇我们以springboot 2.7.0版本为例讲解集成nacos配置中心的功能。
2023-05-25 08:19:24 910 2
原创 Nacos:简单易用的配置管理和服务发现注册中心
nacos是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。我们可以将nacos作为配置中心和注册中心使用。本篇我们主要讲下nacos的安装以及nacos配置管理功能的使用。
2023-05-22 09:18:27 273
原创 springboot环境下mybatis映射器自动注册的原理
本篇主要讲了映射器自动注册的流程,以及调用映射器接口方法时涉及到的一些流程。我们也提到了一个很重要的概念:MappedStatement。映射文件中的每个sql映射语句都对应一个MappedStatement对象,而通过映射器接口的方法名,我们又能找到唯一的MappedStatement对象,进而执行最终的sql映射语句。
2023-05-15 18:26:23 150
原创 超实用的Spring bean工具类
另外,最重要的一点是:我们讲的是spring bean的初始化,那我们的SpringApplicationUtil工具类就要被托管(注册)到spring容器中才行,这也就是为什么在SpringApplicationUtil类上面加上@Component注解的原因,就是为了将工具类标记为spring的一个组件(记得要确保该组件能被spring识别)。如果有一个工具类还好,那如果有多个呢?我在之前写的“浅谈spring bean的生命周期”的文章中的2.3部分,提到了“初始化bean”的这一操作。
2023-05-10 16:51:41 183
原创 Arthas:一款阿里开源的java应用诊断利器
Arthas 是一款线上监控诊断产品,通过全局视角实时查看java应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。
2023-05-07 10:14:54 378
原创 浅谈spring bean的生命周期
生命周期,简单理解就是事物从开始出现到最终消亡的一段时间。spring bean的生命周期就是从spring创建bean,到最终spring将bean销毁的一个过程(或一段时间),而我们上篇谈到的spring bean的初始化方法和销毁方法,都会在bean的生命周期内得到调用。简单来说,spring容器中的bean会经历如下过程:创建bean实例–>创建完成,正常使用–>spring销毁bean接下来我们就基于版本的代码对上述过程详细分析下。
2023-05-04 08:27:37 77
原创 spring注解配置bean的初始化方法和销毁方法
PostConstruct指定的方法-->InitializingBean接口的afterPropertiesSet方法-->@Bean的initMethod属性指定的方法@PreDestroy指定的方法-->DisposableBean接口的destroy方法-->@Bean的destroyMethod属性指定的方法。
2023-05-01 15:30:57 265
原创 Spring创建bean的几种方式
(1)如果一个类不是ImportSelector或ImportBeanDefinitionRegistrar的子类,当它被@Import导入的时候,它就会被当成一个配置类存在,可以简单理解为它被加了@Configuration注解,那么原本在这个类上面的注解(比如@ComponentScan、@Import、@ImportResource等等)就也会生效。
2023-04-29 09:46:08 498
原创 spring拦截器机制及其使用
spring针对处理器映射器提供了一种拦截器的机制,允许我们自定义一些处理逻辑,比如打印日志、校验用户是否登录等,然后spring会在调用最终的处理器前后执行我们自定义的逻辑。注:(1)处理器映射器,也叫,关于它的作用,可以简单理解为它能根据请求路径找到我们在controller中写的能处理外部请求的方法。(2)本文所展示的代码基于springboot 2.7.0版本(对应spring 5.3.20版本)定义LoginInterceptor拦截器,实现HandlerInterceptor接口。
2023-04-22 19:19:29 271
原创 maven多个仓库查询的优先级顺序
上一篇我们详解了setttings.xml的配置项,里面的配置项基本都和仓库有关系,我们使用maven更多的也是要从仓库下载jar包,然后也把我们自己公共的jar包上传到仓库。由于我们是可以配置多个仓库的,这时候就涉及到了一个问题:下载一个jar包时,怎么确定这些仓库的使用顺序?
2023-04-20 15:45:02 2070 2
原创 android studio编译出错:Android resource linking failed
问题描述今天在Android studio模拟允许app的时候,出现了以下错误:Android resource linking failedAAPT: D:\developer\androidproject\MyApplication\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values-v28\values-v28.xml:7: error: resource android:attr/dialogC
2020-09-05 13:13:47 50886 5
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人