gpt4 book ai didi

java - 只启动 applicationcontext 中所有 bean 的一个子集

转载 作者:行者123 更新时间:2023-11-29 03:57:03 25 4
gpt4 key购买 nike

我们有一个设置,其中 ApplicationContext 定义了很多 bean,但根据情况,只需要启动这些 bean 的一个子集(我所说的启动是指生命周期回调和 start() 方法)。

基本上,我想做的是在单个 bean 上调用“启动”,并让该 bean 的所有依赖项以常规 bean 启动顺序启动,除此之外别无其他。

有这样的现有代码吗?如果没有,什么是实现此目的的好方法?

最佳答案

我通常将 bean 配置拆分成单独的文件,然后只导入包含必要 bean 的文件。如果可以避免循环依赖,则可以将文件相互导入。例如,您可以像这样定义一个 service.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">

<description>Service and lower layer beans.</description>

<context:component-scan base-package="com.gamma.purple"
use-default-filters="false">
<context:include-filter type="annotation"
expression="org.springframework.stereotype.Service" />
</context:component-scan>

<import resource="dao.xml" />

</beans>

由于 dao.xml 不应该依赖于 service.xml,如果您只需要 dao bean,您可以只导入该文件,而不会加载任何服务 bean。

关于java - 只启动 applicationcontext 中所有 bean 的一个子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5802699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com