Java 相当于mvc的手动配置:注释驱动

Java 相当于mvc的手动配置:注释驱动,java,spring,spring-mvc,Java,Spring,Spring Mvc,在SpringMVC中,与mvc等价的手动配置是什么:注释驱动?因为我的webapp实现了RequestMappingHandlerMapping,所以我不能使用mvc:annotation-driven,但必须自己配置 具体地说,我想知道为了@Async注释能够工作,必须包括哪些配置。我不确定它是不是自动取款机。我在启动时启动了一个后台任务,该任务应该在webapp运行时运行,在我看来,整个服务器都在等待这个(永无止境的)方法完成。@Async方法位于辅助服务中,该辅助服务由@PostCons

在SpringMVC中,与mvc等价的手动配置是什么:注释驱动?因为我的webapp实现了RequestMappingHandlerMapping,所以我不能使用mvc:annotation-driven,但必须自己配置

具体地说,我想知道为了@Async注释能够工作,必须包括哪些配置。我不确定它是不是自动取款机。我在启动时启动了一个后台任务,该任务应该在webapp运行时运行,在我看来,整个服务器都在等待这个(永无止境的)方法完成。@Async方法位于辅助服务中,该辅助服务由@PostConstruct上的另一个服务调用

以下是两个类:

@Service
public class ModuleDirectoryWatcher{
    @Autowired
    ModuleDirectoryWatcherWorker worker;

    @PostConstruct
    public void startWatching() {
        worker.startWatching();
    }
}

@Service
public class ModuleDirectoryWatcherWorker {
    @Async
    public void startWatching() {
        createPluginDir();
        initializeClassloader();
        initializeWatcher();
        watch();
    }
}
到目前为止,我的applicationContext.xml的相关部分如下所示:

<bean name="handlerAdapter"
 class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">    
    <property name="messageConverters">
        <list>
            <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"</bean>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter"></bean>
            <bean class="org.springframework.http.converter.ResourceHttpMessageConverter"></bean>
            <bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter"></bean>
            <bean class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter"></bean>
            <bean class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter"></bean>
            <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
        </list>
    </property>
</bean>

<bean name="handlerMapping"
 class="com.coderunner.caliope.module.api.impl.ModuleHandlerMapping">
</bean>


现在我觉得自己很傻。。。为了工作,@Async和@Scheduled需要

<task:annotation-driven executor="myExecutor" scheduler="myScheduler" />
<task:executor id="myExecutor" pool-size="5" />
<task:scheduler id="myScheduler" pool-size="10" />

即使你不使用


也许它能帮助别人

现在我觉得自己很傻。。。为了工作,@Async和@Scheduled需要

<task:annotation-driven executor="myExecutor" scheduler="myScheduler" />
<task:executor id="myExecutor" pool-size="5" />
<task:scheduler id="myScheduler" pool-size="10" />

即使你不使用


也许它对其他人有帮助

你是说需要添加什么配置才能使
@Async
工作?是的,这正是我的意思。首先,我没有意识到有一个任务:注释驱动和一个mvc:注释驱动。几分钟后,我发现缺少了什么,请参见下文……您是说需要添加什么配置才能使
@Async
正常工作?是的,这正是我的意思。首先,我没有意识到有一个任务:注释驱动和一个mvc:注释驱动。几分钟后,我发现丢失了什么,见下文。。。