mvc的等效手动配置到底是什么:spring mvc中的注释驱动?因为我的webapp实现了RequestMappingHandlerMapping,所以我不能使用mvc:annotation-driven,但必须自己配置。
具体来说,我想知道为了让@Async注释工作,必须包含哪些配置。我不确定它是否确实存在。我在启动时启动后台任务,只要webapp正在运行就应该运行,在我看来整个服务器都在等待这个(永无止境的)方法完成。 @Async-Method位于worker-service中,由@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>
答案 0 :(得分:1)
现在我觉得很傻......为了工作,@ Async和@Scheduled需要
<task:annotation-driven executor="myExecutor" scheduler="myScheduler" />
<task:executor id="myExecutor" pool-size="5" />
<task:scheduler id="myScheduler" pool-size="10" />
即使您不使用
也许它可以帮助那些人