我有一个 Spring Web 应用程序。这是一个简单的结构来解释我的问题
java/
└── com/
└── example/
├── controller/
│ └── MyController.java // REST Controller
├── service/
│ └── MyService.java // Service interface
├── client/
│ └── EC2Client.java // EC2Client
MyController
注入 MyService
和 MyService
注入 EC2Client
。我想根据区域(美国东部、美国西部等)创建 bean 层次结构。因此,对于每个区域,我应该有一个控制器、服务和一个 ec2client bean。
理想情况下,如果我必须基于区域创建单个类 bean,我可以创建限定符 bean。但我该如何为整个继承体系做到这一点呢?我可能有 5 个以上的区域所以,想要在自然界中实现这种动态
EC2Client.java 可以是接口或抽象类,并按区域添加 EC2Client.java 的一些 impl 类(EastEC2Client.java\WestEC2Client.java)。 EC2Client.java 的所有子类都可以在启动时放入映射中。 “MyService”注入了地图。可以从服务中的地图中选择一个区域ec2client。 在此输入图片描述