Отправить работу Spring в тот же контекст Spring - PullRequest
0 голосов
/ 30 ноября 2018

Возможно ли, что я загружаю контекст Spring в автономную JVM и отправляю весь пакет Spring в загруженный контекст Spring?

Я пытаюсь избежать загрузки контекста Spring для каждой отправки задания Spring, поскольку у меня есть ресурс, который требуетдолгое время загрузки, которое в конечном итоге замедляет загрузку контекста пружины.

У меня есть код ниже в основном методе класса.Я вызываю класс через CLI, передавая имя задания, которое я хочу вызвать

public class SpringBatchJobRunner {

    public static void main(String[] args) {
        try {
            parseArguments(args);
            ApplicationContext context = new ClassPathXmlApplicationContext("classpath:com/demo/batch/context/spring-batch-context.xml");
            JobLauncher jobLauncher = (JobLauncher) context.getBean("jobLauncher");
            Job job = (Job) context.getBean(jobName);
            JobParametersBuilder builder = new JobParametersBuilder();
            builder.addDate("date", new Date());
            JobExecution execution = jobLauncher.run(job, builder.toJobParameters());
        }
        catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    static void parseArguments(String[] args) {
        if (args.length > 0) {
            jobName = args[0];
        }
        else {
            throw new IllegalArgumentException("Please specify job name.");
        }
        if (args.length > 1) {
            for (int i = 1; i < args.length; i++) {
                String[] keyValue = args[i].split("=");
                jobParameters.setProperty(keyValue[0], keyValue[1]);
            }
        }
    }
}

1 Ответ

0 голосов
/ 30 ноября 2018

Да, контекст приложения Spring может содержать несколько определений заданий.После загрузки контекста приложения вы можете получить рабочие компоненты и запускать их по мере необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...