覆盖spring的bean
这些天,我越来越多地与Spring合作,而我发现的问题引起了人们的疑问。 本周,我的想法转向了bean覆盖,即用同一个名称注册多个bean。
对于简单的项目,则不需要这样做。 但是当围绕核心构建一个插件架构时,这可能是一个解决方案。 这是我发现并验证的有关bean覆盖的一些事实。
-
每个文件一个bean
-
Spring bean文件中的
id
属性的类型为ID
,这意味着在特定的Spring bean定义文件中,只有一个具有特定ID
bean。 根据上下文片段的加载顺序覆盖bean
-
与类路径加载相反,在类路径加载中,第一个类比其他类在类路径上具有更高的优先级,它是最后使用的具有相同名称的最后一个 bean。 这就是为什么我称它为覆盖。 反转片段加载顺序可以证明这一点。
片段组装方法定义顺序
-
片段可以从Spring bean定义文件中的
<import>
语句或通过外部组件( 例如 ,Web应用程序或测试类中的Spring上下文侦听器)进行汇编。 都定义了确定性顺序。
附带说明一下,尽管我以前在项目中使用过imp
id