【发布时间】:2020-04-19 14:53:26
【问题描述】:
抱歉,我对 Spring 很陌生。我想根据用户的输入值动态注入或获取 bean。
例如:
public interface PaymentGateway {}
public class PayPal implement PaymentGateway {}
public class Stripe implement PaymentGateway {}
public class Square implement PaymentGateway {}
public class PaymentService {
@Autowired
private final PaymentGateway gateway;
// TODO
}
我让用户选择一个支付网关(PayPal、Stripe 或 Square)并注入一个 PaymentGateway 来处理。如何动态注入或获取bean?
非常感谢!
【问题讨论】:
-
我认为这是应用策略模式的完美场景。以下链接对此提供了很好的解释,它也与您的“支付实现”场景完美匹配refactoring.guru/design-patterns/strategy/java/example
标签: java spring spring-boot dependency-injection