<!-- If you need to report a security issue please visit https://github.com/apache/dubbo/security/policy -->

- [x] I have searched the [issues](https://github.com/apache/dubbo/issues) of this repository and believe that this is not a duplicate.

### Environment

* Dubbo version: 3.0.7
* Operating System version: Mac OS
* Java version: 8

### Steps to reproduce this issue

1. set dubbo.protocol.port=30880
2. define dubbo service to export
3. create an @Bean to invoke dubbo reference
4. start up spring boot application
5. service export port is 30880, metadata service export port is 20880

Pls. provide [GitHub address] to reproduce this issue.

### Expected Behavior

metadata service and instance export port is 30880

### Actual Behavior

metadata service and instance export port is 20880

### Issue code debug
![image](https://user-images.githubusercontent.com/7418602/169072305-1b0c83ab-0407-4bc0-aa1a-387c475d82f0.png)
![image](https://user-images.githubusercontent.com/7418602/169070767-406c3daa-ef0b-4b1a-89ef-44fb1cbcfa4f.png)
![image](https://user-images.githubusercontent.com/7418602/169071049-4607808e-9958-4f8d-888c-5f05135e2fbb.png)
![image](https://user-images.githubusercontent.com/7418602/169070937-8ac15446-5947-4a1f-8a2e-eba5c55e579f.png)


}
                }
            } catch (Exception e) {
                logger.error("Failed to find any valid " + specifiedProtocol + " protocol, will use random port to export metadata service.");
            }
        } else {
            protocolConfig.setPort(port);
        }
        if (protocolConfig.getPort() == null) {
            protocolConfig.setPort(-1);
        }
        logger.info("Using " + specifiedProtocol + " protocol to export metadata service on port " + protocolConfig.getPort());
        return protocolConfig;
    }
    private Integer getSpecifiedPort() {
        Integer port = getApplicationConfig().getMetadataServicePort();
        if (port == null) {
            Map<String, String> params = getApplicationConfig().getParameters();
            if (CollectionUtils.isNotEmptyMap(params)) {
                String rawPort = getApplicationConfig().getParameters().get(METADATA_SERVICE_PORT_KEY);
                if (StringUtils.isNotEmpty(rawPort)) {
                    port = Integer.parseInt(rawPort);
                }
            }
        }
        return port;
    }
    private String getSpecifiedProtocol() {
        String protocol = getApplicationConfig().getMetadataServiceProtocol();
        if (StringUtils.isEmpty(protocol)) {