Camel 处理器示例
处理器只包含路由所需的方法。它只是一个包含多种方法的经典 Java Bean。你还可以实现 Processor 并覆盖流程方法。
请参阅以下代码:
@Component("testExampleProcessor")
public class TestExampleProcessor {
private static final Logger LOGGER = LogManager.getLogger(TestExampleProcessor.class);
@Autowired
public ImportDocumentTraitementServiceImpl importDocumentTraitementService;
@Autowired
public ImportDocumentProcessDAOImpl importDocumentProcessDAO;
@Autowired
public ImportDocumentTraitementDAOImpl importDocumentTraitementDAO;
// ---- Constants to name camel headers and bodies
public static final String HEADER_ENTREPRISE = "entreprise";
public static final String HEADER_UTILISATEUR = "utilisateur";
public static final String HEADER_IMPORTDOCPROCESS = "importDocumentProcess";
public void getImportDocumentProcess(@Header(HEADER_ENTREPRISE) Entreprise entreprise, Exchange exchange) {
LOGGER.info("Entering TestExampleProcessor method : getImportDocumentProcess");
Utilisateur utilisateur = SessionUtils.getUtilisateur();
ImportDocumentProcess importDocumentProcess = importDocumentProcessDAO.getImportDocumentProcessByEntreprise(
entreprise);
exchange.getIn().setHeader(HEADER_UTILISATEUR, utilisateur);
exchange.getIn().setHeader(HEADER_IMPORTDOCPROCESS, importDocumentProcess);
}
public void createImportDocumentTraitement(@Header(HEADER_ENTREPRISE) Entreprise entreprise,
@Header(HEADER_UTILISATEUR) Utilisateur utilisateur,
@Header(HEADER_IMPORTDOCPROCESS) ImportDocumentProcess importDocumentProcess, Exchange exchange) {
LOGGER.info("Entering TestExampleProcessor method : createImportDocumentTraitement");
long nbImportTraitementBefore = this.importDocumentTraitementDAO.countNumberOfImportDocumentTraitement();
ImportDocumentTraitement importDocumentTraitement = this.importDocumentTraitementService.createImportDocumentTraitement(
entreprise, utilisateur, importDocumentProcess, "md5_fichier_example_test", "fichier_example_test.xml");
long nbImportTraitementAfter = this.importDocumentTraitementDAO.countNumberOfImportDocumentTraitement();
exchange.getIn().setHeader("nbImportTraitementBefore", Long.valueOf(nbImportTraitementBefore));
exchange.getIn().setHeader("nbImportTraitementAfter", Long.valueOf(nbImportTraitementAfter));
exchange.getIn().setHeader("importDocumentTraitement", importDocumentTraitement);
}
// Rest of the code contains getters and setters for imported dependencies
}
这里不多说,除了我们使用交换将对象从一个部分转移到另一个部分。这是我的项目通常完成的方式,因为我们有非常复杂的流程来处理。