Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java tomcat配置导致运行@Service的2个副本_Java_Spring_Tomcat - Fatal编程技术网

Java tomcat配置导致运行@Service的2个副本

Java tomcat配置导致运行@Service的2个副本,java,spring,tomcat,Java,Spring,Tomcat,我有一个ScheduledExecutor,它在我的一些@服务的@PostConstruct上运行。但是,此tomcat配置会导致运行两个@Service副本,删除其中任何一个副本都会导致wars中的@Controller无法工作 如何解决这个问题?我需要将@Service设置为singleton,以便只有一个执行器运行一些代码 将Executor设置为static将使其仅成为一个Executor,但是否有办法在配置级别实现这一点 web.xml <context-param>

我有一个
ScheduledExecutor
,它在我的一些
@服务的
@PostConstruct
上运行。但是,此tomcat配置会导致运行两个
@Service
副本,删除其中任何一个副本都会导致wars中的
@Controller
无法工作

如何解决这个问题?我需要将
@Service
设置为singleton,以便只有一个
执行器运行一些代码

Executor
设置为
static
将使其仅成为一个
Executor
,但是否有办法在配置级别实现这一点

web.xml

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>WEB-INF/classes/applicationContext.xml</param-value>
</context-param>
<servlet>
    <servlet-name>servlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:servlet-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    <async-supported>true</async-supported>
</servlet>

上下文配置位置
WEB-INF/classes/applicationContext.xml
servlet
org.springframework.web.servlet.DispatcherServlet
上下文配置位置
类路径:servlet-context.xml
1.
真的
servlet-context.xml

<import resource="applicationContext.xml" />
<bean id="properties" class="my.package.common.properties.MyPropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>WEB-INF/classes/system.properties</value>
            <value>WEB-INF/classes/db.properties</value>
            <value>WEB-INF/classes/applicationContext.properties</value>
        </list>
    </property>
</bean>

<context:annotation-config />
<context:component-scan base-package="my.package" />

applicationContext.xml

<import resource="applicationContext.xml" />
<bean id="properties" class="my.package.common.properties.MyPropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>WEB-INF/classes/system.properties</value>
            <value>WEB-INF/classes/db.properties</value>
            <value>WEB-INF/classes/applicationContext.properties</value>
        </list>
    </property>
</bean>

<context:annotation-config />
<context:component-scan base-package="my.package" />

WEB-INF/classes/system.properties
WEB-INF/classes/db.properties
WEB-INF/classes/applicationContext.properties