作为一名开始Java开发不到一年的.Net开发者,有一点让我不解的是Spring配置文件的广泛使用。让我澄清一下:
在 IoC 容器的情况下,我还没有看到社区有兴趣设置他们的目录/模块/等等。通过 Java 以外的任何其他平台中的 xml 配置。
XML 配置通常用作调用构造函数/工厂方法的非常冗长的替代方法。与代码相比,这显然是一个缺点,因为它不是类型安全的、过于冗长并且在 IDE 中不可索引(例如,查找方法的用法)
Autofac 等其他 IoC 框架支持 xml 配置,但在那些非 java 平台中,XML 配置不受欢迎。
我的问题:
是否有最佳/实践设计原则等支持为 IoC 选择 XML 配置或它仅仅是一种历史习惯?
XML 和属性文件不需要重新编译,允许您在服务器环境中进行部署中的更改。
例如,您可以有 2 个 bean 实现并交换注入(inject)的一个:
<bean id="impl1" ... />
<bean id="impl2" ... />
<bean id="dependent" ... >
<constructor-arg ref="impl1"/>
</bean>
您可以向Collection
类型的项目添加或删除项目:
<util:set id="some_set">
<value>value #1</value>
</util:set>
此外,对于控制单元测试的环境,如果您有一组 XML 文件,其中一个用于数据库连接,那么这就是您为需要内存数据库的单元测试替换的那个 XML 文件,并且可以'在开发时连接到真正的 macoy:
src/main/resources/
- META-INF/spring/
service-context.xml
dao-context.xml
datasource-context.xml
src/test/resources/
- META-INF/spring/
datasource-context.xml // this is the test version of that context