需求来源
最近接了一个需求,订单保存的逻辑完全调整,但是还要兼容以前的逻辑,经过分析接口参数没有发生变化,故前端不用调整。后端需要在项目启动的时候确定走的是旧逻辑,还是新逻辑,然后将对应的代码加载到spring容器中。
解决方案
首先想到的是工厂模式,写两个service。根据启动时传入的参数来确定加载哪个servcie到spring容器。
这是通过强大的百度,发现spring有个 org.springframework.context.annotation.Conditional 注解
该注解可以使用在类上或方法上,只有一个参数value。
需要继承org.springframework.context.annotation.Condition
springboot 提供的糖
一下注解为springboot 为我们提供的对condition的实现。
常用注解解释:
参考:https://blog.csdn.net/lizhiyuan_eagle/article/details/91583834