首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载Spring bean

加载Spring bean
EN

Stack Overflow用户
提问于 2011-08-15 18:16:16
回答 5查看 19.2K关注 0票数 4

在Spring中有没有什么方法可以专门加载一个bean。

我有一个包含很多bean的appContext文件。当使用以下代码加载它时,它会再次加载所有bean。

代码语言:javascript
复制
BeanFactory factory = new ClassPathXmlApplicationContext("appContext.xml");
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-08-15 18:32:05

使用ApplicationContextAware怎么样?

Bean映射

<bean id="springApplicationContext" class="SpringApplicationContext"/>

Java实现

代码语言:javascript
复制
public class SpringApplicationContext implements ApplicationContextAware {

    private static ApplicationContext CONTEXT;

    public void setApplicationContext(ApplicationContext ctx) throws BeansException {
        CONTEXT = ctx;
    }

    public static Object getBean(String name) {
        return CONTEXT.getBean(name);
    }
}

然后像这样使用它;

SpringApplicationContext.getBean("myBean");

票数 5
EN

Stack Overflow用户

发布于 2011-08-15 18:29:51

默认情况下,spring在启动时创建所有singleton-scoped beans的实例。

我建议您将spring配置拆分到几个不同的文件中。在这种情况下,您将只能加载任务所需的那组bean。

另一种方法是使用default-lazy-init属性声明beans:

代码语言:javascript
复制
<beans default-lazy-init="true">
    <!-- no beans will be pre-instantiated... -->
</beans>
票数 2
EN

Stack Overflow用户

发布于 2011-08-15 18:32:06

您可以使用ApplicationContextAware接口。example

当你得到这个bean的实例时,你可以加载任何你想要的bean。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7063821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档