Java 什么时候应该使用p/c名称空间,什么时候属性/构造函数参数元素(Spring)?

Java 什么时候应该使用p/c名称空间,什么时候属性/构造函数参数元素(Spring)?,java,spring,Java,Spring,我知道: 使用p-namespace和c-namespace灵活性较差,因为不能将它们与以Ref结尾的名称一起使用,也不能将list/map/properties/set用作值。 使用p-namespace意味着运行时的开销,我不确定c-namespace。 p-namespace和c-namespace没有在模式或XSD文件中定义,但我不知道这实际上意味着什么。 p/c名称空间更具可读性且更简短。 关于这一点有什么约定吗?您可以混合使用:只要p/c名称空间有效,就使用它。当一个bean出现问题

我知道:

使用p-namespace和c-namespace灵活性较差,因为不能将它们与以Ref结尾的名称一起使用,也不能将list/map/properties/set用作值。 使用p-namespace意味着运行时的开销,我不确定c-namespace。 p-namespace和c-namespace没有在模式或XSD文件中定义,但我不知道这实际上意味着什么。 p/c名称空间更具可读性且更简短。
关于这一点有什么约定吗?

您可以混合使用:只要p/c名称空间有效,就使用它。当一个bean出现问题时,请切换到显式propert/constructor声明。

运行时的p-namespace开销是什么意思?@chenrui Spring引用说[p-namespace]更简洁;但是,打字错误是在运行时而不是在设计时发现的。这里有一个链接:我在开始时也考虑过这样做,但我在Spring参考中发现了这一点:我们建议您仔细选择您的方法,并将其传达给您的团队成员,为了避免生成同时使用这三种方法的XML文档,所以我假设同时使用这两种方法是一种不好的做法,我不知道为什么会说这三种方法。我想第三种方法是基于Java的配置。我的点击并没有违反这一规则:它表明您更喜欢c/p而不是属性,并且只有在c/p不起作用时才会退回到属性-我理解的参考文档意义上的混合问题是,不建议在没有任何规则的情况下混合它们,因此,一个程序员正在使用属性,而另一个程序员将使用c/p进行相同的配置。我理解并喜欢你的观点。我会用的。你应该把它作为一个答案,而不是评论。