如何运行共享相同上下文的多个Spring启动应用程序?

如何运行共享相同上下文的多个Spring启动应用程序?,spring,spring-security,spring-boot,microservices,Spring,Spring Security,Spring Boot,Microservices,我想运行共享同一上下文的多个微服务应用程序,以便可以为多个spring boot(微服务)应用程序运行自定义安全筛选器 例如: 用户服务: 产品服务: 评论服务: 我应该为所有微服务运行一个公共过滤器(自定义安全过滤器)。将该过滤器提取到每个微服务将使用的单独JAR中。该JAR将被单独的项目版本控制,并独立地部署到您的工件存储库中 事实上,在微服务环境中,您将拥有更多的“公共”bean/功能,这些bean/功能应该跨服务共享。因此,在微服务环境中,这样的公共JAR是必要的 将过滤器提取到每个微服

我想运行共享同一上下文的多个微服务应用程序,以便可以为多个spring boot(微服务)应用程序运行自定义安全筛选器

例如:

用户服务:

产品服务:

评论服务:


我应该为所有微服务运行一个公共过滤器(自定义安全过滤器)。

将该过滤器提取到每个微服务将使用的单独JAR中。该JAR将被单独的项目版本控制,并独立地部署到您的工件存储库中


事实上,在微服务环境中,您将拥有更多的“公共”bean/功能,这些bean/功能应该跨服务共享。因此,在微服务环境中,这样的公共JAR是必要的

将过滤器提取到每个微服务将使用的单独JAR中。该JAR将被单独的项目版本控制,并独立地部署到您的工件存储库中


事实上,在微服务环境中,您将拥有更多的“公共”bean/功能,这些bean/功能应该跨服务共享。因此,在微服务环境中,这样的公共JAR是必要的

正如@luboskrnac所建议的那样——为了安全起见,您可以简单地将您的公共逻辑提取到一个单独的JAR中

关于您的共享应用程序上下文(我假设您只是指共享URL空间,而不是在应用程序之间共享任何特定状态等),那么是的-您应该使用类似于
Zuul
-这可以充当外部和所有微服务之间的单一接口(在引擎盖下,它们都将在自己独特的应用程序上下文名称空间/端口号中运行-但是
Zuul
可以将它们组合在一起,并在一致的位置上使用漂亮的URL公开它们)

幸运的是,整个堆栈都得到了Spring的良好支持,因此使用
Zuul
Eureka
(发现服务)来启动和运行是相当简单的


我在这里编写了一个
helloworld
堆栈设置(以及代码):

正如@luboskrnac所建议的那样-为了安全起见,您可以简单地将通用逻辑提取到一个单独的JAR中

关于您的共享应用程序上下文(我假设您只是指共享URL空间,而不是在应用程序之间共享任何特定状态等),那么是的-您应该使用类似于
Zuul
-这可以充当外部和所有微服务之间的单一接口(在引擎盖下,它们都将在自己独特的应用程序上下文名称空间/端口号中运行-但是
Zuul
可以将它们组合在一起,并在一致的位置上使用漂亮的URL公开它们)

幸运的是,整个堆栈都得到了Spring的良好支持,因此使用
Zuul
Eureka
(发现服务)来启动和运行是相当简单的


我在这里编写了一个
helloworld
堆栈设置(以及代码):

感谢@luboskrnac的快速回答,但这只是答案的一半。请您帮助我配置具有相同上下文的多个启动应用程序……我怀疑您不理解我的答案。您不能在不同的微服务之间共享单个上下文。您可以拥有将加载到va的具有Spring配置的公共项目作为共享JAR的项目。我希望您熟悉共享库的概念。我可以使用任何像Zuul这样的网关来配置公共上下文吗?我不熟悉Zuul,但尝试这样做对我来说没有意义。您尝试共享代码,而不是状态。因此,假设上面的示例,下面是微服务的终点:什么你能推荐这里有一个共同的上下文吗?可能吗?感谢@luboskrnac的快速回答,但这只是答案的一半。你能帮我配置多个具有相同上下文的启动应用程序吗?我怀疑你不明白我的答案。你不能在不同的微服务之间共享单个上下文。你可以带有Spring配置的公共项目,将作为共享JAR加载到各个项目中。我希望您熟悉共享库的概念。我可以使用任何网关(如Zuul)来配置公共上下文吗?我不熟悉Zuul,但尝试这样做对我来说没有意义。您尝试共享代码,而不是状态。因此,假设上面提到的举个例子,下面是微服务的终结点:你可以推荐什么来建立一个公共上下文?可能吗?比如