【问题标题】:Manual configuration equivalent to mvc:annotation-driven [duplicate]手动配置相当于 mvc:annotation-driven [重复]
【发布时间】:2013-08-18 03:31:00
【问题描述】:

在 spring mvc 中,与 mvc:annotation-driven 等效的手动配置究竟是什么?因为我的 webapp 实现了 RequestMappingHandlerMapping,所以我不能使用 mvc:annotation-driven 但必须自己配置它。

具体来说,我想知道必须包含哪些配置才能使@Async 注释起作用。我不确定它是否可以自动取款机。我在启动时启动了一个后台任务,只要 webapp 正在运行,它就应该运行,在我看来,整个服务器都在等待这个(永无止境的)方法完成。 @Async-Method 位于一个工作服务中,该服务被@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 工作?
  • 是的,这正是我的意思。首先我没有意识到有一个任务:注释驱动和一个mvc:注释驱动。几分钟后,我发现了丢失的东西,见下文...

标签: java spring spring-mvc


【解决方案1】:

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

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

即使你不使用

也许它可以帮助那里的人

【讨论】:

    猜你喜欢
    • 2012-05-01
    • 2012-02-19
    • 2011-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-15
    相关资源
    最近更新 更多