我认为很多专业人士不切换到注解驱动的依赖注入的主要原因是它不支持在开发/测试/生产环境之间切换。在许多情况下,出于开发目的,您不仅使用不同的服务(以及它们的连接),而且有时您需要模拟它们,或创建 Dummy 实例。
昨天我想出了一个带有 Spring 注释的解决方案:
@Value("#{${env} == "production" ? realService : dummyService}")
private SomeService service;
...这应该工作,但不是很好。
我会对您的解决方案或论点非常感兴趣:为什么这不是一个真正的问题;-) 欢迎 Guice、Spring 或任何其他。
最初的问题是这个线程的一部分:Spring @Autowired usage,但我认为值得创建一个新线程。