gpt4 book ai didi

java - 如何处理库所需的Spring bean?

转载 作者:行者123 更新时间:2023-12-01 20:00:30 25 4
gpt4 key购买 nike

我正在使用 Spring 重构应用程序,将一些共享组件(Web 服务客户端)移至库中。这些组件无法单独工作,因此仍然需要使用该库的应用程序中的一些 bean。对此的最佳实践是什么?

我创建了一个 @Configuration 类,因此应用程序只需 @Import 即可使用该库,但应用程序还需要提供 Jackson ObjectMapper 和包含如何联系 Web 服务的 Settings 对象。我将 ObjectMapper 和 Settings bean Autowiring 到库中使用的各种 bean 中。应用程序通过将客户端注入(inject)其代码并调用它来使用该库。

这可行,但我不确定这是正确的样式。在 IntelliJ IDEA 中,当我开发该库时,它提示该库注入(inject)的 Bean 不存在,并带有红色下划线,这是事实,它们不存在。但通常当我看到无法解析的文件全部呈红色时,这告诉我也许我没有以正确的方式进行操作。

该库需要与使用 Spring 3 和 5 的应用程序一起使用。当不适合定义自己的库(因为应用程序已经有了 Jackson)时,库请求 ObjectMapper 之类的东西的正确方法是什么?像 Settings 对象这样的“专有”bean?

最佳答案

您的问题有点宽泛,但希望我能为您提供正确方向的提示。

The components cannot work on their own so still need some beans from the application that uses the library. What is the best practice for this?

  • 首先:该组件应该使用接口(interface)而不是一些具体的 bean。
  • 第二:如果您有一个可重用的库,那么这通常需要一些配置,但这些配置不能成为库本身的一部分,因为它取决于使用该库的应用程序
  • 第三:因为第二个(也是第一个):您的库不应该基于任何形式的自动连接,而您的库应该基于显式(或默认)配置。

这解决了问题。在应用程序中使用接口(interface)和库的显式配置。以及将所需配置的良好文档添加到您的库中。

关于java - 如何处理库所需的Spring bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48067260/

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