我正在使用 bean factory 从测试类中加载一个 spring bean
XmlBeanFactory factory = new XmlBeanFactory(new ClassPathResource("my-bean-file.xml"))
MyBean bean = (MyBean) factory.getBean("myBean")
我可以使用 Spring JUnit4TestRunner 加载单个 bean 还是仅用于加载整个应用程序上下文?
如果你想这样做是因为你的 bean 太昂贵而无法全部加载,你可以声明它们是惰性的,这意味着它们只会在需要时加载。
Spring 文档示例:
<bean id="lazy" class="com.foo.ExpensiveToCreateBean" lazy-init="true"/>
<bean name="not.lazy" class="com.foo.AnotherBean"/>
但是,当延迟初始化的 bean 是未延迟初始化的单例 bean 的依赖项时,ApplicationContext 会在启动时创建延迟初始化的 bean,因为它必须满足单例的依赖项。延迟初始化的 bean 被注入到没有延迟初始化的其他地方的单例 bean 中。
它将加载整个应用程序上下文。但是你可以拆分你的 bean 文件(例如分成 DAO、服务层、控制器),并在你的主应用程序中包含每个文件一次。在您的测试中,只需使用您感兴趣的图层即可。