apache / apache/dubbo

[Feature] Can @Method annotation provide more possibilities to control which @Method ultimately takes effect with minimal granularity, including on methods of classes using @DubboService annotation, methods of parent classes, and abstract methods of interfaces

Open
#14,927 3 comments 0 reactions 0 assignees View on GitHub
help wanted type/enhancement type/proposal
Dominant language
Java
Stars
41.6k
Forks
26.4k
Avg merge
15h 13m
Merged PRs (30d)
4

Description

### Pre-check

- [X] I am sure that all the content I provide is in English.

### Search before asking

- [X] I had searched in the [issues](https://github.com/apache/dubbo/issues?q=is%3Aissue) and found no similar feature requirement.

### Apache Dubbo Component

Java SDK (apache/dubbo)

### Descriptions

Can `@method` annotation provide more possibilities to control which `@method` ultimately takes effect with minimal granularity, including on methods of classes using `@DubboService` annotation, methods of parent classes, and abstract methods of interfaces.
And consider adding wildcard characters to match the methods.Or add an annotation for configuration.
for example:

```
public interface TestGateway {
Response create(String t);

@Method(retries = 2, timeout = 1000)
Response createOther(String t);

@Method(retries = 2, timeout = 1000)
Response createTest(String t);
}
```
```

@DubboService(interfaceClass = TestGateway.class, version = "1.0.0", group = "public",
methods = {
@Method(name = "create*", retries = 5, timeout = ,6000)
}
)
public class TestGatewayImpl implements TestGateway {

@Override
public Response create(String t) {
return Response.buildSuccess();
}

@Override
public Response createOther(String t) {
return Response.buildSuccess();
}

@Override
@Method(retries = 1, timeout=500))
public Response createTest(String t) {
return Response.buildSuccess();
}
}
```

In the above example, the retry count for create is 5, with a timeout of 6000 milliseconds. The retry count for create Other is 2, with a timeout of 1000 milliseconds. The retry count for create Test is 1, with a timeout of 500 milliseconds

### Related issues

_No response_

### Are you willing to submit a pull request to fix on your own?

- [X] Yes I am willing to submit a pull request on my own!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.