我认为许多专业人士不切换到基于注解的依赖注入的主要原因是它不支持在开发/测试/生产环境之间进行切换。在许多情况下,您不仅使用不同的服务(以及它们的连接),有时还需要模拟它们或创建虚拟实例。
昨天我通过Spring注解找到了一个解决方案:
@Value("#{${env} == "production" ? realService : dummyService}")
private SomeService service;
这应该是可行的,但不够好。
我非常希望能听到您的解决方案或者争论:为什么这不是一个真正的问题呢?欢迎使用Guice,Spring或任何其他框架。
最初的问题是这个主题的一部分:Spring @Autowired usage,但我认为它值得创建一个新的主题。