注释变得流行.Spring-3支持它们.CDI严重依赖它们(我不能在没有注释的情况下使用CDI,对吧?)
我的问题是为什么?
我听到几个问题:
"它有助于摆脱XML".但是xml有什么不好的?依赖性本质上是声明性的,XML对于声明非常有用(对于命令式编程来说非常糟糕).有了很好的IDE(就像想法一样),编辑和验证xml非常容易,不是吗?
"在许多情况下,每个接口只有一个实现".那不是真的!我系统中的几乎所有接口都具有用于测试的模拟实现.
还有其他问题吗?
现在我的XML优势:
你可以在任何地方注入任何东西(不仅是带有注释的代码)
如果我有一个接口的多个实现,我该怎么办?使用限定符?但它迫使我的班级知道它需要什么样的注射.它不适合设计.
基于XML的DI使我的代码清晰:每个类都不知道注入,所以我可以配置它并以任何方式对它进行单元测试.
你怎么看?
我有部署到glassfish的.war应用程序.我想做CDI,所以我需要从我的POJO中查找java:comp/BeanManager.但它不起作用:BeanManager根本找不到!
怎么了?
我是否需要在glassfish中启用CDI?或者它只适用于.ear文件?
谢谢.