gpt4 book ai didi

java - 依赖于非 Spring 项目的 Spring 项目

转载 作者:太空宇宙 更新时间:2023-11-04 11:42:48 25 4
gpt4 key购买 nike

我有两个必须合并的 Java 应用程序。第一个是 Spring,其中的方法需要由第二个 Elasticsearch 插件调用(我认为它不能变成 Spring 应用程序,因为它已经使用某种形式的 Guice 进行依赖注入(inject))。

我需要调用的 Spring 类如下所示:

@Component
public class DataServiceController {

//This is defined within a @Config
@Autowired
DataTypesMap dataTypesMap;

/**
* Create an item in the data platform
*/
public ItemCreatedResponse createItem(String data, String dataType)
throws IOException {
ProcessStrategy dataStrategy = dataTypesMap.get(dataType);
return dataStrategy.add(data);
}

如果我只是将此项目添加为 ES 插件中的 Maven 依赖项,则 Autowired dataTypesMap 始终为 null(这是预期的,因为 Elasticsearch 插件中没有任何内容会告诉它如何 Autowiring )。

我在这里能做什么?

最佳答案

您可以对 Autowiring 字段使用 setter 方法,然后设置值。

@autowired
public void setDataTypesMap (DataTypesMap dataTypesMap ){
this.dataTypesMap = dataTypesMap ;
}

在您的应用程序中,您无法 Autowiring bean,但可以设置它。

myBean.setDataTypeMap();

第二个选项是在非 Spring 应用程序内启动 Spring 应用程序的上下文。

您可以在此处查看如何操作。

http://www.springbyexample.org/examples/intro-to-ioc-creating-a-spring-application.html

关于java - 依赖于非 Spring 项目的 Spring 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42631614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com