随笔分类 -  spring

摘要:很多人会直接只用@Async来执行异步操作。但是这里面有一个问题,如果都是用spring的默认实现,是有坑的。 当我们开启 EnableAsync注解 就可以使用@Async注解来执行异步操作了。 我们现在通过EnableAsync注解去打开spring异步世界的坑。 走JDK的动态代理: 最终走到 阅读全文
posted @ 2024-01-18 20:55 白露非霜 阅读(551) 评论(3) 推荐(6)
摘要:对于ribbon的使用我们只需要在RestTemplate的申明上面加上 @LoadBalanced 注解之后那么这个RestTemplate就具有了负载均衡的功能 ribbon是怎么实现这一功能的? ribbon会把所有的LoadBalanced 注解的RestTemplate收集起来,基于Sma 阅读全文
posted @ 2020-12-27 14:06 白露非霜 阅读(261) 评论(0) 推荐(0)
摘要:作为一个注册中心,和eureka类似,核心的功能点: 1.服务注册:nacos客户端携带自身信息向nacos服务端进行注册。 2.服务心跳:客户端定时向服务端发送心跳,告知服务端自己处于可用状态 3.服务健康检查:服务端定时检查客户端是否有发送心跳,如果超过15s没有收到心跳,那么就会将该客户端实例 阅读全文
posted @ 2020-12-23 21:19 白露非霜 阅读(1267) 评论(0) 推荐(0)
摘要:Nacos不仅可以作为注册中心使用,还可以作为配置中心使用。相比于使用spring-cloud-config-server来说,我们可以不用再去建一个配置文件的git仓库,直接可以在nacos的控制台进行操作,同时配置文件热更新也更为方便,只需要在控制台修改,服务端就更新了。 1.加依赖 <depe 阅读全文
posted @ 2020-12-16 20:56 白露非霜 阅读(19780) 评论(2) 推荐(1)
摘要:前面说到基于nacos的注册发现有可以扩展实现我们自己的负载均衡算法(Nacos数据模型),来实现同集群调用,是基于spring.cloud.nacos.discovery.cluster-name参数。另外基于spring.cloud.nacos.discovery.metadata参数也可以实现 阅读全文
posted @ 2020-12-15 21:09 白露非霜 阅读(3851) 评论(0) 推荐(0)
摘要:1.服务注册:com.netflix.eureka.registry.AbstractInstanceRegistry#register(InstanceInfo registrant, int leaseDuration, boolean isReplication) 对客户端提供资源接口:com 阅读全文
posted @ 2020-11-23 18:50 白露非霜 阅读(507) 评论(0) 推荐(1)
摘要:1.基于注解,首先我们是通过@EnableAspectJAutoProxy()这个注解开起AOP功能,这个注解会导入AspectJAutoProxyRegistrar组件从而将AnnotationAwareAspectJAutoProxyCreator注册到bean定义中。 2.如果容器有对应名字的 阅读全文
posted @ 2020-02-29 15:01 白露非霜 阅读(1296) 评论(0) 推荐(1)
摘要:前面说到对象的创建,那么在创建的过程中Spring是怎么又是如何解决循环依赖的呢。前面提到有个三级缓存。就是利用这个来解决循环依赖。打个比方说实例化A的时候,先将A创建(早期对象)放入一个池子中。这个时候虽然属性没有赋值,但是容器已经能认识这个是A对象,只是属性全是null而已。在populateB 阅读全文
posted @ 2020-02-26 08:30 白露非霜 阅读(5039) 评论(0) 推荐(1)
摘要:1.监听器Listener(点此连接,执行流程带源码分析及demo) 2.bean定义的后置处理器(BeanDefinitionRegistryPostProcessor)和bean工厂的后置处理器(BeanFactoryPostProcessor):详见Spring IOC(2) 如何注册bean 阅读全文
posted @ 2020-02-22 17:21 白露非霜 阅读(1400) 评论(0) 推荐(0)
摘要:说到事件监听,想到的肯定是观察者模式。但是这儿主要说下spring中的监听是怎么样的流程。 这就不得不说到spring容器的refresh方法,容器启动过程中,listener相关的主要是这个三个方法:initApplicationEventMulticaster方法初始化事件多播器,后续的事件发布 阅读全文
posted @ 2020-02-20 23:31 白露非霜 阅读(13544) 评论(0) 推荐(2)
摘要:Nacos 数据模型 Key 由三元组唯一确定, Namespace默认是空串,公共命名空间(public),分组默认是 DEFAULT_GROUP。 以上都是nacos官网上面的图片及描述,综合一下应该是这个样子 可以在nacos控制台看到与之对应的界面 我们来看下这些东西都是用来干嘛的, Nam 阅读全文
posted @ 2020-02-15 20:43 白露非霜 阅读(2297) 评论(0) 推荐(2)
摘要:1.Nacos服务端搭建(需要有java环境),下载地址:https://github.com/alibaba/Nacos/releases 下载对应操作系统的包解压。 1.1.解压:tar -zxvf nacos-server-1.1.4.tar.gz nacos 1.2.单机启动执行bin目录脚 阅读全文
posted @ 2020-02-15 13:30 白露非霜 阅读(4688) 评论(0) 推荐(0)
摘要:正常来说一个系统肯定有很多业务异常。而这些业务异常的信息如何返回给前台呈现给用户。比如用户的某些操作不被允许,需要给用户提示。 Spring 提供了@ControllerAdvice这个注解,这个注解可以实现全局异常处理,全局数据绑定,全局数据预处理,这里主要说下使用这个注解实现全局异常处理。 1. 阅读全文
posted @ 2020-01-21 21:06 白露非霜 阅读(1968) 评论(0) 推荐(1)
摘要:之前有说到springboot自动装配的时候,都是去寻找一个XXXAutoConfiguration的配置类,然而我们的springboot的spring.factories文件中有各种组件的自动装配类,到底哪些应该生效,哪些又不生效呢?这个时候就要用到spring提供的条件注解了。 比如: @Co 阅读全文
posted @ 2019-12-16 22:24 白露非霜 阅读(893) 评论(0) 推荐(2)
摘要:1.为什么需要自己实现参数解析器 我们都知道在有注解的接口方法中加上@RequestBody等注解,springMVC会自动的将消息体等地方的里面参数解析映射到请求的方法参数中。 如果我们想要的信息不完全是来自消息体等地方,比如说一部分是消息体,一部分是消息头,甚至一部分从配置中获取。这个时候我们又 阅读全文
posted @ 2019-11-30 22:55 白露非霜 阅读(1965) 评论(1) 推荐(1)
摘要:前面一节说到invokeBeanFactoryPostProcessors方法的调用来注册bean定义,这次来看看finishBeanFactoryInitialization这个方法实例化非懒加载的单例bean。 1.refresh方法中调用invokeBeanFactoryPostProcess 阅读全文
posted @ 2019-10-08 23:15 白露非霜 阅读(686) 评论(0) 推荐(0)
摘要:前面说到IOC容器在刷新之前的一些初始化工作,现在来看看在refresh()方法中,是怎样来加载注册我们自己的bean定义的。 refresh()方法中有很多功能,从注释中就可以看出来 我们本次重点关注invokeBeanFactoryPostProcessors(beanFactory);这个方法 阅读全文
posted @ 2019-10-07 18:56 白露非霜 阅读(1287) 评论(0) 推荐(0)
摘要:首先本次分析是基于注解形式的,想来xml格式的原理都是类似的。 首先说一下什么是Bean定义(beandefinition):bean定义并不是实例化的bean,而是bean对象的一些信息,根据这些定义的信息最后来初始化bean。比方说就是一些类的信息,还有我们配置的该实例的信息(是否懒加载,单例还 阅读全文
posted @ 2019-10-06 23:10 白露非霜 阅读(1161) 评论(0) 推荐(0)
摘要:对于springboot个人认为它就是整合了各种组件,然后提供对应的自动装配和启动器(starter),基于这个流程去实现一个定义的装配组件 还是这张图 一、创建自己的自动配置工程, spring.factories文件中配置上自己的配置 1.创建一个Properties类(UserDefPrope 阅读全文
posted @ 2019-07-15 22:22 白露非霜 阅读(5678) 评论(0) 推荐(2)
摘要:1.对于springboot个人认为它就是整合了各种组件,然后提供对应的自动装配和启动器(starter) 2.@SpringBootApplication注解其实就是组合注解,通过它找到自动装配的注解@EnableAutoConfiguration,再由@EnableAutoConfigurati 阅读全文
posted @ 2019-07-15 00:10 白露非霜 阅读(1582) 评论(0) 推荐(0)

访问量