SOFABoot扩展@sofaservice

本文介绍了如何扩展SOFABoot的@sofaservice注解,实现在启动时按需注册服务。通过修改源码添加新参数,并自定义jar包,实现了在测试环境中减少不必要的服务注册,提高了启动效率。详细步骤包括源码下载、修改、打包以及测试过程。
摘要由CSDN通过智能技术生成

你可以不用,但一定要有!!!

项目需要使用了SOFABoot,它是蚂蚁金服开源的基于 Spring Boot (当然了它是建立在spring 之上)的研发框架,

使用过程中,发现很多个服务注册时有些慢(服务越多注册,程序启动就越慢),特别是测试时,其实我只想测试两三四五个服务,那么程序启动时我根本就不需要注册那么多服务,测试时按需个性化注册,钉钉上问了相关工作人员,他们说没有,故而我只能自己实现了。

 

1.  首先去github上把源码下载下来,地址: https://github.com/sofastack/sofa-boot

 导入到开发工具,看个人情况是eclipse还是idea,我是用的eclipse

 

 

 

2.  然后找到有个子项目runtime-sofa-boot,层层展开找到平常用的注解@sofaservice,追加需要的参数

接着还是在该项目下找到子包spring,

该子包下有个ServiceBeanFactoryPostProcessor,(归根结底还是spring,哈哈哈),在该类中的方法generateSofaServiceDefinition判断是否要生成sofaservice

  private void generateSofaServiceDefinition(String beanId, SofaService sofaServiceAnnotation,
                                               Class<?> beanClass, BeanDefinition beanDefinition,
                                               ConfigurableListableBeanFactory beanFactory) {
        if (sofaServiceAnnotation == null) {
            return;
        }
        
        //开始追加代码
        SofaLogger.error("来自环境变量: {}");
        //Environment environment = (Environment) applicationContext.getEnvironment();
        String enableAllSofaService = environment.getProperty("enableAll@sofaservice");
        SofaLog
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值