我正在尝试使用Spring 3.0提供的@Async注释创建一个异步方法
我已经完成了以下
包含在我的module-context.xml
<task:executor id="initiateContactCreation" pool-size="2-10" queue-capacity="5"/>
<task:annotation-driven executor="initiateContactCreation" />
带有@Async
的带注释的方法
@Async
private void initiateContactCreation(String fromUserId, List<String> toUsers){
logger.info("Inside Async method for contact creation");
ContactDetails contactDetails = new ContactDetails();
contactDetails.setUserId(fromUserId);
contactDetails.setContactEmailIds(toUsers.toArray(new String[toUsers.size()]));
this.contactsAndDirSvc.addContact(contactDetails);
logger.info("Returning from Async method for contact creation");
}
但我发现该方法不会立即返回控件。
我的记录器显示
来自initiateContactCreation
的日志然后来自addContact
的日志(PS。执行此方法需要时间,我不希望它同步执行)然后从我调用的方法中记录{{1 }}
我做错了什么?