我正在开发一个spring web应用程序。该应用程序使用Stripe API来处理付款处理。简而言之,我希望了解这两种配置Stripe的方法中的哪一种。根据应用程序是“实时”还是“生产”,您可以使用不同的公钥和私钥作为Stripe配置的一部分。我正在考虑这两种方法。使用个人资料是否会过度?
使用Spring Profiles:
@Configuration
@Profile("live")
public class StripeConfigLive{
@Bean
public MyStripeOperationsHandler getStripeOpsHandler() {
return new MyStripeOperationsHandler(livePrivKey, livePubKey);
}
}
@Configuration
@Profile("dev")
public class StripeConfigDev{
@Bean
public MyStripeOperationsHandler getStripeOpsHandler() {
return new MyStripeOperationsHandler(devPrivKey, devPubKey);
}
}
@Controller
public class MyController {
@Autowired
private MyStripeOperationsHandler stripeOperationsHandler;
//use the handler to respond to requests
}
或者,只需将运行模式指定为web.xml中的上下文参数:
public class MyController implements ServletContextAware {
private MyStripeOperationsHandler stripeOperationsHandler;
private ServletContext servletContext;
@PostConstruct
public void init() {
RunMode runMode = RunMode.valueOf(servletContext.getInitParameter("runMode"));
switch (runMode) {
//init the MyStripeOperationsHandler
}
}
@Override
public void setServletContext(ServletContext servletContext) {
this.servletContext = servletContext;
}
//use the handler to respond to requests
}
答案 0 :(得分:0)
我建议您使用' Spring Profile'。因为如果明天你想要增强功能,比如使用不同的数据源'对于不同的环境,您可以使用相同的技术(弹簧剖析)来实现多种目的。