基于租户/区域的 Spring Bean 对象层次结构

问题描述 投票:0回答:1

我有一个 Spring Web 应用程序。这是一个简单的结构来解释我的问题

java/
└── com/
    └── example/
        ├── controller/
        │   └── MyController.java       // REST Controller
        ├── service/
        │   └── MyService.java          // Service interface
        ├── client/
        │   └── EC2Client.java          // EC2Client

MyController
注入
MyService
MyService
注入
EC2Client

EC2Client有多个Bean。这些是根据地区使用的。区域是通过控制器中的其余 API 接收的。

我想根据区域(美国东部、美国西部等)创建 bean 层次结构。因此,对于每个区域,我应该有一个控制器、服务和一个 ec2client bean。

理想情况下,如果我必须基于区域创建单个类 bean,我可以创建限定符 bean。但我该如何为整个继承体系做到这一点呢?我可能有 5 个以上的区域所以,想要在自然界中实现这种动态

java spring dependency-injection inversion-of-control javabeans
1个回答
0
投票

EC2Client.java 可以是接口或抽象类,并按区域添加 EC2Client.java 的一些 impl 类(EastEC2Client.java\WestEC2Client.java)。 EC2Client.java 的所有子类都可以在启动时放入映射中。 “MyService”注入了地图。可以从服务中的地图中选择一个区域ec2client。 在此输入图片描述

© www.soinside.com 2019 - 2024. All rights reserved.