首页 > 解决方案 > 在spring boot web项目中获取外部jar类的局部变量

问题描述

我编写了一个项目 A,其中包含一个类 KMeans.java。该类包含一个公共局部变量iteration。我将项目构建到一个 jar 并将该 jar 添加到我的 Spring Boot Web 项目 B.

/**
ProjectA.jar
--KMeans.java
*/
public class KMeans{
  public int iteration;

  public void run(){
    for( iteration=0; iteration<1000; iteration++){
      ....
    }
  }
}

我尝试获取iterationB 中的值以动态显示在网页中。但是,我不知道如何获得价值。因此,我决定将值写入数据库。

我在 A 中创建了ModelStatusUtils.java一个包含save(int iteration)方法的类。

  public abstract class ModelStatusUtils{
     public abstract void save(int iteration);
  }

我将类作为参数放入run()方法中,KMeans.java这样我就可以保存可以由外部类控制的迭代。

  ....
  public void run(ModelStatusUtils model){

     for( iteration=0; iteration<1000; iteration++){
      ....
      model.save(iteration);
     }
  }
  ...

接下来,我WebModelStatusUtils.java在 B 中创建了一个类(我认为以下错误是因为 WebModelStatusUtils 扩展了 A 中的 ModelStatusUtils,所以 spring boot 无法扫描包并且无法正确自动装配 jpa)ModelStatusUtils.java。我使用了 jpa 并在WebModelStatusUtils.java.

  public class WebModelStatusUtils extends ModelStatusUtils{
    @Autowired
    private ModelStatusRepository modelStatusRepository;

    @Override
    public int saveIteration(int i) {
      ModelStatus modelStatus = new ModelStatus(i);
      modelStatusRepository.save(modelStatus);
      return 1;
     }

  }

存储库是:

public interface ModelStatusRepository extends JpaRepository<ModelStatus, Long> {
}    

但是,它调用错误:

java.lang.NullPointerException: null, at WebModelStatusUtils .saveIteration(WebModelStatusUtils .java:23) ~[classes/:na]

我的问题是:

1)如何在web项目中获取外部jar的实例局部变量

2)为什么它抛出空异常。我应该如何解决它

标签: springspring-bootspring-data-jpa

解决方案


推荐阅读