我们基本上需要能够在启动时调整行为,方法是在我们的应用程序中提供由各种工厂生成的所需类(以避免“新”操作符的硬绑定).
我知道这是由几个大型框架提供的,但我一直在寻找一个独立的Java应用程序很容易使用的东西而不是巨大的.
有什么建议?
编辑:根据我的经验,框架在成熟过程中往往会变得更大(也很复杂).作为主要重构(技术债务)的一部分,我需要对遗留应用程序进行改造,因此简化对于使用的库来说至关重要.我不介意在我们的应用程序中进行一些编码,但它必须非常明显地发生了什么. AOP倾向于将东西移开,这可能使应用程序更难维护.
编辑:我们现在已经达到了实际需要做出决定的程度.该应用程序可能会存在数十年,因此我们需要通过一个框架做出可逆的决定,这个框架可以保留很长时间.我真的很喜欢Guice提供的静态类型检查,但并不是注释明确地绑定到Guice而不是像Spring那样是外部的.我也喜欢使用Guice而不是Spring时代码看起来更简洁.我们需要一些强大而有用的东西.我们目前不需要更多的DI.是否存在明确说明其中一个的用例?
编辑2011-07-27:最终的决定是在代码中使用JSR-330 API,并在每个项目的基础上选择是否使用Spring,Guice或Weld.对于独立应用程序,Guice在JSR-330实现方面运行良好.
解决方法
你看过
Google Guice框架了吗?它非常轻量级,基于注释,避免使用XML配置文件
还有Pico– and Nano-container(来自codehaus)虽然上次我看起来(不可否认几年前)文档很缺乏,但它们相当轻巧.
我必须说,我同意其他人的观点,我认为你的假设是春天是庞大而混乱的.它真的是一个非常简单的IoC容器,值得推荐.