Nacos 1.4.1源码解析之服务注册--AP
nacos的使用方法在zhuanlan.zhihu.com/p/...有详细介绍。 在启动nacos Client时,源码源码首先开启自动装配功能,搜索搜索接着初始化discovery配置参数。源码源码紧接着,搜索搜索注册NacosServiceRegistry,源码源码红星源码然后注册服务自动注册bean NacosAutoServiceRegistration。搜索搜索在Spring容器启动完成时,源码源码启动发布监听事件。搜索搜索此过程中,源码源码NacosAutoServiceRegistration实现ApplicationListener,搜索搜索监听springBoot web容器启动事件,源码源码于Spring容器启动的搜索搜索finishRefresh阶段启动web容器后发布。接收到消息后执行onApplicationEvent,源码源码设置服务端口。搜索搜索 服务元数据初始化通过NacosRegistration,用户可以通过配置文件配置,集成系统源码或使用API进行服务注册。服务注册通过rest请求至/nacos/v1/ns/instance实现,官方文档提供详细指导。 nacos server端的API服务主要由com.alibaba.nacos.naming.controllers.InstanceController入口控制。它采用缓存结构,第一层为namespace,第二层为group分组。在service中,clusterMap按照集群分组,集群内才是实例列表。在添加、修改实例或基于集群纬度修改实例时,使用copyOnWrite方式替换。流程图展示基本操作流程。Spring注解驱动开发二狗子让我给他讲讲@EnableAspectJAutoProxy注解
在配置类上添加@EnableAspectJAutoProxy注解,能够开启注解版的诱导漫画源码AOP功能。这意味着,如果在AOP中要启用注解版的AOP功能,就需要在配置类上添加@EnableAspectJAutoProxy注解。让我们来看看@EnableAspectJAutoProxy注解的源码,如下所示。
从源码可以看出,@EnableAspectJAutoProxy注解使用@Import注解引入了AspectJAutoProxyRegister.class对象。那么,AspectJAutoProxyRegistrar是做什么的呢?我们点击到AspectJAutoProxyRegistrar类的源码中,如下所示。
可以看到AspectJAutoProxyRegistrar类实现了ImportBeanDefinitionRegistrar接口。我们回顾ImportBeanDefinitionRegistrar接口的定义,如下所示。
通过ImportBeanDefinitionRegistrar接口,我们可以实现将自定义的组件添加到IOC容器中。也就是ag棋牌源码说,@EnableAspectJAutoProxy注解使用AspectJAutoProxyRegistrar对象自定义组件,并将相应的组件添加到IOC容器中。
在AspectJAutoProxyRegistrar类的registerBeanDefinitions()方法中设置断点,我们以debug的方法来运行AopTest类的testAop()方法。当程序运行到断点位置时,我们可以看到程序已经暂停,IDEA的左下角显示了方法的调用栈。
在registerBeanDefinitions()方法中,首先调用AopConfigUtils类的registerAspectJAnnotationAutoProxyCreatorIfNecessary()方法来注册registry。在registerAspectJAnnotationAutoProxyCreatorIfNecessary()方法中,直接调用了重载的registerAspectJAnnotationAutoProxyCreatorIfNecessary()方法。在重载的registerAspectJAnnotationAutoProxyCreatorIfNecessary()方法中,传入了AnnotationAwareAspectJAutoProxyCreator.class对象。
在registerOrEscalateApcAsRequired()方法中,接收到的Class对象的类型为:org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator。然后,autojs论坛源码我们继续跟进代码。
在registerOrEscalateApcAsRequired()方法中,首先判断registry是否包含org.springframework.aop.config.internalAutoProxyCreator类型的bean。接下来,我们继续看代码。
最终,AopConfigUtils类的registerOrEscalateApcAsRequired()方法中,会通过registry调用registerBeanDefinition()方法注册组件,并注册的bean的名称为org.springframework.aop.config.internalAutoProxyCreator。
接下来,我们继续看AspectJAutoProxyRegistrar类的registerBeanDefinitions()源码。我们通过AnnotationConfigUtils类的attributesFor方法来获取@EnableAspectJAutoProxy注解的信息。接下来,我们继续判断proxyTargetClass属性的值是否为true,如果为true则调用AopConfigUtils类的forceAutoProxyCreatorToUseClassProxying()方法;继续判断exposeProxy属性的值是否为true,如果为true则调用AopConfigUtils类的forceAutoProxyCreatorToExposeProxy()方法。
综上所述,向Spring的配置类上添加@EnableAspectJAutoProxy注解后,会向IOC容器中注册AnnotationAwareAspectJAutoProxyCreator。
了解了这些之后,我们就可以关注「冰河技术」微信公众号,后台回复不同的关键字获取相应的PDF文档。这些文档都是由冰河原创并整理的超硬核教程,包括《深入浅出Java 种设计模式》、《Java8新特性教程》和《亿级流量下的分布式限流解决方案》,都是面试必备的资料。
最后,如果你觉得这篇文章对你有帮助,别忘了点个赞,给个在看和转发,让更多的人看到,一起学习,一起进步!
ap### et怎么用apnetwork代码?
操作手机:iPhone
操作系统:IOS.1
操作软件:设置.1.0
apnetwork的使用步骤如下:
1、打开苹果手机设置,点击无线局域网。
2、进入无线局域网页面,点击启用WAPI。
3、进入页面后,输入apnetwork服务代码,点击完成即可。
apnetwork代码的内涵:
sudo/etc/init.d/networkstart代码(code)是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。
代码设计的原则:
1、包括唯一确定性、标准化和通用性、可扩充性与稳定性、便于识别与记忆、力求短小与格式统一以及容易修改等。源代码是代码的分支,某种意义上来说,源代码相当于代码。
2、现代程序语言中,源代码可以书籍或磁带形式出现,但最为常用格式是文本文件,这种典型格式的目的是为了编译出计算机程序。计算机源代码最终目的是将人类可读文本翻译成为计算机可执行的二进制指令,这种过程叫编译,它由通过编译器完成。
-- 如何在 uni-app 中检测 APP 端是否有通知权限
参考链接: uniapp.dcloud.net.cn/ap...
最近想实现 APP 端的推送功能,需要检测 APP 是否具备通知权限,对此进行了一些研究,以下是我的记录。
检测是否有推送权限
不多说,直接给出uni-app 官方已经为我们封装好了相关 API。
需要注意的是,这个 API 只能在 App 和微信小程序端使用,需要进行条件编译。
跳转系统授权管理页
如果没有得到授权,通常需要引导用户进行授权,这时需要跳转到系统授权的管理页。
参考代码如下:
与上一个 API 类似,也需要进行条件编译的兼容。
其他实现方式
最后,再补充一下非官方的实现方式。
判断 Android 推送权限是否开启
Android 跳转到应用的权限页面
iOS 版的实现由于没有设备进行测试,所以代码就不展示了,可以参考官方插件的实现。
但是,由于官方插件已经很久没有更新,目前的可用性不高,请下载源码后自行调试。
总结
本文介绍了 uni-app 官方提供的两个 API:uni.getAppAuthorizeSetting() 和 uni.openAppAuthorizeSetting(),它们分别用于检测和跳转到 APP 端的通知权限设置页面。
还提供了非官方的实现方式,主要针对 Android 平台,利用 plus.android 模块和 Java 类库实现相同功能。
注意,代码需要进行条件编译,因为这两个 API 只支持在 APP 和微信小程序端使用。
2024-12-29 08:55
2024-12-29 08:45
2024-12-29 07:49
2024-12-29 07:40
2024-12-29 06:48