我有一个用例,我想构建一个可以更新应用程序实体的通用接口或服务。示例案例如下所示:
现在每个应用程序都必须处理实体的更新功能。而不是在n应用程序模块中实现更新功能。我想在spring boot中构建一个通用接口或服务器。
我的问题是如何设计可用于上述场景的服务/界面。任何api或工具,可以帮助我实现这一目标。我不想在每个应用程序模块中编写更新代码。
提前致谢。
答案 0 :(得分:0)
去年我在考虑与你的相似概念,但在Apache Camel框架上下文中。我没有足够的时间和动力这样做,但你的帖子鼓励我试一试 - 也许主要是因为我发现你的概念与我的非常相似。
这就是我的看法:
所以基本上我认为应用程序的环境可能使用N个模块/插件来丰富应用程序的功能,即处理功能等。应用程序在类路径中使用时使用模块/插件 - 考虑Java背景。当模块不可用时,应用程序在没有其功能的情况下工作。此外,我想纯粹使用框架功能实现它 - 在本例中是Spring - 在源代码中没有丑陋的hacks / ifs。
我想到了三个解决方案: - 使用请求/响应拦截器和修改(@ControllerAdvice) - 使用Spring AOP拦截* Service代理类中的方法调用 - 使用Apache Camel框架为处理实体创建路由
以下是我实施的POC的简要概述:
在接下来的步骤中,我想将这些处理器外部化,因此这些是可插入的jar文件。
我想知道这是否是你想要达到的目标?
链接到Spring AOP简介:https://docs.spring.io/spring/docs/5.0.5.RELEASE/spring-framework-reference/core.html#aop
链接到提到的POC的存储库:https://github.com/bkpawlowski/spring-aop