code: @Override
      public List<Component> resolveComponents(Dependency dependency) {
          logger.trace("Finding   {}", dependency);
          List<Component> meets = new ArrayList<Component>();
          for (Component component : components) {
              if (dependency.accept(component)) {
                  meets.add(component);
              }
          }
          if (meets.isEmpty()) {
              logger.trace("Missing   {}", dependency);
          } else {
              logger.trace("Found     {} {} components", dependency, meets.size());
          }
          //对所有满足的依赖进行排序
          Collections.sort(meets);
          //排序的原则是越高版本越好
          Collections.reverse(meets);
          return meets;
      }
docs: 从当前已经解析的组件中找到符合依赖的组件列表，这不会触发实际解析动作
  
  @param dependency 依赖信息
  @return 组件列表