1、排序注解@org.springframework.core.annotation.Order(org.springframework.core.Ordered.HIGHEST_PRECEDENCE)
2、实现org.springframework.core.Ordered接口,实现getOrder方法,返回的值越小,bean执行的优先级越高。
3、org.springframework.beans.factory.SmartInitializingSingleton:SmartInitializingSingleton接口,实现SmartInitializingSingleton的接口后,当所有单例 bean 都初始化完成以后, Spring的IOC容器会回调该接口的 afterSingletonsInstantiated()方法。
4、ApplicationContextAware 获取spring的上下文
5、BeanPostProcessor 后置处理器:作用是在Bean对象在实例化和依赖注入完毕后,在显示调用初始化方法的前后添加我们自己的逻辑。注意是Bean实例化完毕后及依赖注入完成后触发的。
postProcessBeforeInitialization | 实例化、依赖注入完毕, 在调用显示的初始化之前完成一些定制的初始化任务 |
postProcessAfterInitialization | 实例化、依赖注入、初始化完毕时执行 |
6、BeanFactoryPostProcess 前置处理器:这个机制允许我们在实例化相应对象之前对注册到容器中的BeanDefinition的存储信息进行修改。可以根据这个机制对Bean增加其它信息。修改Bean定义的某些属性值。
7、@Around的作用
既可以在目标方法之前织入增强动作,也可以在执行目标方法之后织入增强动作;
可以决定目标方法在什么时候执行,如何执行,甚至可以完全阻止目标目标方法的执行;
可以改变执行目标方法的参数值,也可以改变执行目标方法之后的返回值; 当需要改变目标方法的返回值时,只能使用Around方法;
8.SmartInitializingSingleton 启动初始化实现
9.DisposableBean, InitializingBean 初始化销毁
10、ReactorServiceInstanceLoadBalancer springcloud自定义负载均衡LoadBalancer
11、CommandLineRunner
12、org.springframework.cloud.client.discovery.DiscoveryClient 自定义服务发现类
13、org.springframework.cloud.gateway.route.RouteDefinitionRepository 网关路由扩展类