加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

spring-Double(Scheduler)bean初始化

发布时间:2020-12-15 01:21:08 所属栏目:大数据 来源:网络整理
导读:我的应用程序中有2个上下文,一个是“ spring”(Web MVC),第二个是“ rpc”(仅RPC服务).它们都从“ spring”目录继承配置(有4个文件:app-config.xml,infrastructure-config.xml,integration-config.xml和security-config.xml). app-config.xml包含Quartz Sch

我的应用程序中有2个上下文,一个是“ spring”(Web MVC),第二个是“ rpc”(仅RPC服务).它们都从“ spring”目录继承配置(有4个文件:app-config.xml,infrastructure-config.xml,integration-config.xml和security-config.xml).

app-config.xml包含Quartz Scheduler的初始化.

因此,如果我启动我的应用程序,则有两个Quartz Scheduler线程,并且所有调度的服务都会被调用两次.那是因为我将设置从app-confix.xml继承到两个上下文中吗?

我认为在父配置中定义的bean仅初始化一次,并在继承该父配置的上下文之间共享.

感谢您的任何建议:).

来自我的web.xml的示例.

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/spring/*-config.xml
    </param-value>
</context-param>

<servlet>
    <servlet-name>rpc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>rpc</servlet-name>
    <url-pattern>/rpc/*</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/web/*</url-pattern>
</servlet-mapping>
最佳答案
在您的配置中,将创建两个独立的上下文.它们使用相同的文件这一事实并不会导致spring创建公共父上下文.

您需要做的是在web.xml中设置一个contextLoaderListener-为它提供公共配置文件,然后将其从servlets配置中排除.侦听器将创建根上下文并将其绑定到servlet上下文-然后两个servlet都将链接到该上下文作为父上下文.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读