java - 在 Spring 配置中,用 XML 格式编写 Java 代码有什么好处?

标签 java xml spring spring-mvc design-patterns

<分区>

作为一名开始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

关于java - 在 Spring 配置中,用 XML 格式编写 Java 代码有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26245341/

相关文章:

java - IF 语句不适用于 TextWatcher

java - JSF 2.0 + Spring 3,通过注解获取请求参数

java - Spring mvc 在 jsp 页面中使用表单 tld 时抛出异常 - IllegalStateException : Neither BindingResult nor plain target object for bean ,

java - 在 Netbeans 和 Karaf 中开发 OSGI 包时如何管理依赖关系?

java - Weblogic (12.2.1.3.0) 的 NoSuchBeanDefinitionException :No qualifying bean of type [weblogic. messages.saf.internal.SAFServerService]

c# - 反序列化具有唯一属性的重复 XML 元素

JVM 抛出 java.lang.UnknownError

java - 在 Java 中从变量声明新类

java - XStream:反序列化后如何进行验证

java - net.sf.jasperreports.engine.JRException : Byte data not found