private static Map<Method, List<AnnotatedValueResolver>> findMethods(
            List<AnnotatedValueResolver> constructorAnnotatedResolvers,
            BeanFactoryId beanFactoryId, List<RequestObjectResolver> objectResolvers,
            DependencyInjector dependencyInjector) {
        final Set<AnnotatedValueResolver> uniques = uniqueResolverSet();
        uniques.addAll(constructorAnnotatedResolvers);

        final Builder<Method, List<AnnotatedValueResolver>> methodsBuilder = ImmutableMap.builder();
        final Set<Method> methods = getAllMethods(beanFactoryId.type);
        for (final Method method : methods) {
            final List<RequestConverter> converters =
                    AnnotationUtil.findDeclared(method, RequestConverter.class);
            try {
                final List<AnnotatedValueResolver> resolvers =
                        AnnotatedValueResolver.ofBeanConstructorOrMethod(
                                method, beanFactoryId.pathParams,
                                addToFirstIfExists(objectResolvers, converters, dependencyInjector),
                                dependencyInjector);
                if (!resolvers.isEmpty()) {
                    final List<AnnotatedValueResolver> duplicateResolvers = new ArrayList<>(resolvers.size());
                    for (AnnotatedValueResolver resolver : resolvers) {
                        if (!uniques.add(resolver)) {
                            duplicateResolvers.add(resolver);
                        }
                    }
                    if (duplicateResolvers.size() == resolvers.size()) {
                        // Prevent redundant injection only when all parameters are redundant.
                        // Otherwise, we'd better to inject the method rather than ignore it.
                        continue;
                    }

                    for (AnnotatedValueResolver duplicateResolver : duplicateResolvers) {
                        warnDuplicateResolver(duplicateResolver, method.toGenericString());
                    }
                    methodsBuilder.put(method, resolvers);
                }
            } catch (NoAnnotatedParameterException ignored) {
                // There's no annotated parameters in the method.
            }
        }
        return methodsBuilder.build();
    }
Returns a factory of the specified {@link BeanFactoryId}.
core/src/main/java/com/linecorp/armeria/internal/server/annotation/AnnotatedBeanFactoryRegistry.java