Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用子ApplicationContext在父应用程序中添加/覆盖bean_Java_Spring_Dependency Injection - Fatal编程技术网

Java 使用子ApplicationContext在父应用程序中添加/覆盖bean

Java 使用子ApplicationContext在父应用程序中添加/覆盖bean,java,spring,dependency-injection,Java,Spring,Dependency Injection,我有一个相当繁重的Spring应用程序上下文,启动/停止需要很长时间,我想知道是否可以使用子上下文在父上下文中添加/覆盖bean。其动机是让bean直接在父级中可用,甚至在需要时覆盖父级def,这些需求由单独的生命周期开始/停止驱动,以便在开发过程中快速反馈 这可以通过子应用程序上下文来完成吗 有什么特别的事情需要注意吗 另外,我也不介意被指其他适合这份工作的诡计 简短的回答是“不”,您不能这样做,因为父级中的bean已经完全配置、代理,等等。这也可能是潜在的危险,因为如果您更改一个已经被其他1

我有一个相当繁重的Spring应用程序上下文,启动/停止需要很长时间,我想知道是否可以使用子上下文在父上下文中添加/覆盖bean。其动机是让bean直接在父级中可用,甚至在需要时覆盖父级def,这些需求由单独的生命周期开始/停止驱动,以便在开发过程中快速反馈

这可以通过子应用程序上下文来完成吗

有什么特别的事情需要注意吗


另外,我也不介意被指其他适合这份工作的诡计

简短的回答是“不”,您不能这样做,因为父级中的bean已经完全配置、代理,等等。这也可能是潜在的危险,因为如果您更改一个已经被其他10个Bean使用的Bean X,将会发生什么?当前仍在使用旧实例。如果父级中有一个Bean X,子级中有另一个Bean,那么子级将使用子级而不是父级的Bean X实例。如果您覆盖或向上下文添加bean,您基本上需要刷新,即重新加载上下文。我完全知道这样做可能会导致一系列问题。就像代码重新加载/交换在状态出现时通常所做的那样。如果是关于开发,我建议看一看Spring Loaded或JRebel,而不是引入丑陋的黑客,这在某种程度上会导致生产中出现问题,这是我的经验。我正要提到JRebel,我认为它了解Spring Bean的生命周期和在这里应用一些技巧。弹簧加载没有任何线索。不管怎么说,这两种方法都引入了代理,并且搞乱了类。我不需要这个,除此之外,它甚至不需要产生更多的问题。