企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
> anoyi中的GrpcService和GrpcServiceScan 1. 简述(GrpcService和GrpcServiceScan) 这两个都是个接口 2. 查看GrpcService ~~~ package com.anoyi.grpc.annotation; import com.anoyi.grpc.constant.SerializeType; import java.lang.annotation.Documented; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import static java.lang.annotation.RetentionPolicy.RUNTIME; @Documented @Inherited @Retention(RUNTIME) public @interface GrpcService { /** * 远程服务名 */ String server() default ""; /** * 序列化工具实现类 */ SerializeType[] serialization() default {}; } ~~~ 这个类很简单,提供序列化和远程调用的名字而已 3. 查看GrpcServiceScan ~~~ package com.anoyi.grpc.annotation; import com.anoyi.grpc.config.GrpcAutoConfiguration; import org.springframework.context.annotation.Import; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Import({GrpcAutoConfiguration.ExternalGrpcServiceScannerRegistrar.class}) public @interface GrpcServiceScan { /** * `@GrpcService` 所注解的包扫描路径 */ String[] packages() default {}; } ~~~ 4. 讲解GrpcServiceScan这个类 这个GrpcServiceScan有Import这个接口,这个接口配置了GrpcAutoConfiguration.ExternalGrpcServiceScannerRegistrar.class这个类,下一章节会讲解, 因为import一般配置在spring初始化,或者在spring boot的application中出现,实现bean扫描实例化bean的重写,因为这里配置了packages这个方法,其实这个注解就是实现扫描器的效果,只是在import中的类手动实例化扫描的类并注入到spring容器中而已,很简单的一个接口