org.apache.dubbo.config.spring.ServiceBean#getSpringContext looks like a hack, we need to remove it.
public ServiceBean() {
        super();
        this.service = null;
    }
    public ServiceBean(Service service) {
        super(service);
        this.service = service;
    }
    public static ApplicationContext getSpringContext() {
        return SPRING_CONTEXT;
    }
    @Override
    public void setApplicationContext(ApplicationContext applicationContext) {
        this.applicationContext = applicationContext;
        SpringExtensionFactory.addApplicationContext(applicationContext);
        SPRING_CONTEXT = applicationContext;
        try {
            Method method = applicationContext.getClass().getMethod("addApplicationListener", ApplicationListener.class); 
            method.invoke(applicationContext, this);
            supportedApplicationListener = true;
        } catch (Throwable t) {
            if (applicationContext instanceof AbstractApplicationContext) {
                try {
                    Method method = AbstractApplicationContext.class.getDeclaredMethod("addListener", ApplicationListener.class); 
                    if (!method.isAccessible()) {
                        method.setAccessible(true);
                    }
                    method.invoke(applicationContext, this);
                    supportedApplicationListener = true;
                } catch (Throwable t2) {