code: public static void loadAndWatch(ResourceLoader resourceLoader, String resourcePaths) {
          resourcePaths = resourcePaths.trim();
          if("".equals(resourcePaths)){
              LOGGER.info("没有资源可以加载");
              return;
          }
          LOGGER.info("开始加载资源");
          LOGGER.info(resourcePaths);
          long start = System.currentTimeMillis();
          List<String> result = new ArrayList<>();
          for(String resource : resourcePaths.split("[,，]")){
              try{
                  resource = resource.trim();
                  if(resource.startsWith("classpath:")){
                      //处理类路径资源
                      result.addAll(loadClasspathResource(resource.replace("classpath:", ""), resourceLoader, resourcePaths));
                  }else if(resource.startsWith("http:")){
                      //处理HTTP资源
                      result.addAll(loadHttpResource(resource, resourceLoader));
                  }else{
                      //处理非类路径资源
                      result.addAll(loadNoneClasspathResource(resource, resourceLoader, resourcePaths));
                  }
              }catch(Exception e){
                  LOGGER.error("加载资源失败："+resource, e);
              }
          }
          LOGGER.info("加载资源 "+result.size()+" 行");
          //调用自定义加载逻辑
          resourceLoader.clear();
          resourceLoader.load(result);
          long cost = System.currentTimeMillis() - start;
          LOGGER.info("完成加载资源，耗时"+cost+" 毫秒");
      }
docs: 加载资源并自动检测资源变化
  当资源发生变化的时候重新自动加载
  @param resourceLoader 资源加载逻辑
  @param resourcePaths 多个资源路径，用逗号分隔