【问题标题】:Running a function from spring boot jar从spring boot jar运行一个函数
【发布时间】:2021-02-15 12:34:14
【问题描述】:

我是弹簧靴的新手。 有什么方法可以从应用程序中的 spring-boot jar 调用函数吗?

我已将 spring-boot 项目导出为 jar。在服务类内部,有一个使用 SpringJPA 与数据库交互的函数。此外,它使用一个使用@Value 初始化的变量。

这是我的服务类:

@Service
public class TestService {
    @Autowired
    private TestRepo repo;
    @Value("#{new Double('${property.value})}")
    private double val;

    public double myFunc(int a, int b) {
        double res = a*val + b;
        TestEntity entity = new TestEntity();
        entity.setValue(res);
        repo.saveAndFlush(entity);
        return res;
    }
}

这是我的仓库:

@Repository
public interface TestRepo extends JpaRepository<TestEntity, Integer> {

}

这是我的实体:

@Entity
@Data
public class TestEntity {
    @Id
    private int id; //  Autogenerated
    private double value;
}

我想访问 new TestService().myFunction(10,20) 从另一个项目。目前,它正在为 repo 抛出 NullPointerException,并将 val 初始化为 0。我猜这是因为服务 bean 从未初始化过,因为引导应用程序从未启动过。

除了对控制器使用 REST API 调用之外,我还有什么方法可以访问这些功能吗?

【问题讨论】:

    标签: java spring spring-boot


    【解决方案1】:

    您的控制器端点是您的服务的入口点。实际上,您的启动应用程序在容器内运行,并且要使用服务,您必须公开端点并自动连接您的服务。不确定是否有您正在寻找的场景的实际用例。

    【讨论】:

    • 如果我试图从另一个 Spring Boot 项目中访问这样的功能,这种情况可以工作吗?
    • 不。您将不得不对另一个引导端点进行 Feign 调用。
    猜你喜欢
    • 1970-01-01
    • 2015-10-15
    • 1970-01-01
    • 2018-10-17
    • 2021-05-27
    • 2018-08-16
    • 2017-07-02
    • 2021-10-13
    • 2019-06-23
    相关资源
    最近更新 更多