2
我有一個依賴jar的類,它有一個用Spring @Async
註解的方法,我期望這個方法應該在另一個線程中異步執行。在依賴jar中的異步註釋,沒有啓動一個新線程
使用這個類,我在我的父項目中創建一個bean並將它連接到我的類,該類有@Service
註釋。在那個類中,我調用了一個有註解的方法,但正如我所說的,該方法不會在另一個線程中執行。
我該如何做到這一點?
這是代碼。
這是我的接口類:
public interface RequestLoggerService {
@Async
void log(HttpServletRequest request, String serviceName, String requestIdentifier, String message, boolean successful);
}
這是實現類:
public class RequestLoggerServiceImpl implements RequestLoggerService {
private static Logger logger = Logger.getLogger(RequestLoggerServiceImpl.class);
private RequestLoggerDao requestLogger;
@Override
public void log(HttpServletRequest request, String serviceName, String requestIdentifier, String message, boolean successful) {
logRequest(request, serviceName, request.getRequestURI().substring(request.getRequestURI().lastIndexOf("/") + 1), requestIdentifier, message, successful);
}
}
這兩個類都裝在一個罐子是在我父項目中使用的依賴。我使用這個類來創建父項目一個bean:
<bean id="requestLoggerService" class="com.xyz.service.RequestLoggerServiceImpl">
<property name="requestLogger" ref="requestLoggerDao" />
</bean>
而且這個bean然後自動連線在我@Controller
註解類:
public class ActionsController {
@Autowired
private RequestLoggerService requestLogger;
}
代碼必須有問題。發表它。 –
你使用XML配置還是'@ Configuration'/spring boot?如果是後者,那麼您可能需要添加'@ EnableAsync'註釋,請參閱https://spring.io/guides/gs/async-method/請參閱http://stackoverflow.com/questions/31401640/spring-xml - 對等的啓用同步的XML版本 – BretC
嗯,我混了一下,但我有@EnableAsync批註...當我有我的父項目中的異步方法的類,然後一切工作正常,儘快我將它移動到jar中,並從該jar中的類初始化bean,它不起作用... – dplesa