我有两个来自同一个类(id1 和 id2)的 bean,区别在于 ID 和一些属性。 在代码中,我调用了 getbean(id1) 来获取对象。
如何在不重新编译代码的情况下切换到 id2?
最佳答案
如果您有两个具有不同属性的不同 bean,则意味着您有两个不同的对象。这意味着您可以像通常对待不同对象一样对待它们 -
BeanClass b1 = (BeanClass) ctx.getBean("id1");
BeanClass b2 = (BeanClass) ctx.getBean("id2");
但是,如果您有一个单独的场景,当您通过 JUnit 运行它时,您在类中加载 bean 1 以正常工作,并在类中加载 bean 2,那么您应该采用完全不同的方法 -
有两个不同的applicationContext.xml 文件。第一个在您的代码运行时加载,然后在您通过 JUNIT 运行代码时加载其他(applicationContext-test.xml)。这样你就可以在不改变代码的情况下加载不同的bean。
关于java - 在 Spring 的两个 bean 之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5337008/