[JAVA] Verwendung von CommandLineRunner im Spring Batch von Spring Boot

Als ich untersucht habe, wie eine Konsolenanwendung mit Spring Boot erstellt wird, heißt es, dass beim Lesen des Referenzhandbuchs "CommandLineRunner" oder "ApplicationRunner" verwendet wird.

Übrigens, als ich irgendwie die Implementierungsklasse von "CommandLineRunner" untersuchte, gab es eine Klasse namens "JobLauncherCommandLineRunner", um Spring Batch mit Spring Boot auszuführen. Das Standardverhalten dieser Klasse besteht darin, alle `Job in diesem Kontext auszuführen. Es wird jedoch geschrieben, dass ein bestimmter Job ausgeführt werden kann, indem `` jobName``` angegeben wird. Ich habe mich gefragt, wie ich das umsetzen soll, also habe ich mir die Quelle des relevanten Teils angesehen.

JobLauncherCommandLineRunner


public class JobLauncherCommandLineRunner
	implements CommandLineRunner, ApplicationEventPublisherAware {

	@Autowired(required = false)
	public void setJobs(Collection<Job> jobs) {
		this.jobs = jobs;
	}

	@Override
	public void run(String... args) throws JobExecutionException {
		logger.info("Running default command line with: " + Arrays.asList(args));
		launchJobFromProperties(StringUtils.splitArrayElementsIntoProperties(args, "="));
}


	private void executeLocalJobs(JobParameters jobParameters)
			throws JobExecutionException {
		for (Job job : this.jobs) {
			if (StringUtils.hasText(this.jobNames)) {
				String[] jobsToRun = this.jobNames.split(",");
				if (!PatternMatchUtils.simpleMatch(jobsToRun, job.getName())) {
					logger.debug("Skipped job: " + job.getName());
					continue;
				}
			}
			execute(job, jobParameters);
		}
}

Nach dem Starten von Spring Boot wird die `run``` Methode von CommandLineRunner``` ausgeführt. Der Job wird mit der Implementierung hier gestartet. Außerdem wird die Injektion von `` setJbos alle` `Job Sammlungen umfassen. Als nächstes wird die Methode `executeLocalJobs``` verwendet, um alle` `Job``` einzeln zu starten. Wenn zu diesem Zeitpunkt `jobName``` angegeben wird, werden nur die übereinstimmenden Jobs gestartet und die anderen übersprungen.

Ich habe mich gefragt, wie man nur eine bestimmte Funktion mit einem Schlüssel in der Konsolenanwendung ausführt ~ Ich dachte, selbst wenn es mehrere `` `CommandLineRunner``` gibt, werden alle ausgeführt ~, aber wenn Sie es so machen gut aussehen.

Recommended Posts

Verwendung von CommandLineRunner im Spring Batch von Spring Boot
Wie man Lombok im Frühling benutzt
Verwendung von ModelMapper (Spring Boot)
Verwendung des In-Memory-Job-Repositorys mit Spring Batch
Aufrufen und Verwenden der API in Java (Spring Boot)
[Sprint Boot] Verwendung der drei in org.springframework.jdbc.core.namedparam definierten Arten von SqlParameterSource
Verwendung von MyBatis2 (iBatis) mit Spring Boot 1.4 (Spring 4)
Verwendung des eingebauten h2db mit Federstiefel
So fügen Sie in Spring Boot einen Klassenpfad hinzu
Verwendung von JQuery in Rails 6 js.erb
So binden Sie mit einer Eigenschaftendatei in Spring Boot
So erstellen Sie ein Spring Boot-Projekt in IntelliJ
Booten nach Umgebung mit Spring Boot of Maven
So legen Sie Umgebungsvariablen in der Eigenschaftendatei der Spring-Boot-Anwendung fest
Hinweise zur Verwendung von Spring Data JDBC
Verwendung von setDefaultCloseOperation () von JFrame
Verwendung von InjectorHolder in OpenAM
Wie verwende ich Klassen in Java?
So ändern Sie den Einstellungswert von application.properties beim Booten im Frühjahrsstart
Verwenden Sie im Spring Boot @ControllerAdvice, @ExceptionHandler, HandlerExceptionResolver, um Ausnahmen abzufangen
So steuern Sie Transaktionen in Spring Boot ohne Verwendung von @Transactional
Mehrsprachige Unterstützung für Java Verwendung des Gebietsschemas
Verwendung des benannten Volumes in docker-compose.yml
Wie kann ich Spring Tool in Eclipse 4.6.3 einbinden?
Verwendung derselben Mapper-Klasse in mehreren Datenquellen mit Spring Boot + MyBatis
Verwendung von Docker in VSCode DevContainer
Verwendung von MySQL im Rails-Tutorial
So legen Sie ein Profil mit annotationsbasierter Konfiguration im Spring-Framework fest und verwenden es
[Java] [Maven3] Zusammenfassung der Verwendung von Maven3
Verwendung von Umgebungsvariablen in RubyOnRails
Verstehe in 5 Minuten !! Wie man Docker benutzt
Verwendung von credentials.yml.enc aus Rails 5.2
So teilen Sie eine Spring Boot-Nachrichtendatei
Lassen Sie uns herausfinden, wie Sie mit Request Body mit der REST-API von Spring Boot empfangen können
Verwendung von ExpandableListView in Android Studio
[Spring Boot] Ich habe untersucht, wie die Nachbearbeitung der empfangenen Anforderung implementiert werden kann.
So lesen Sie Request Body mit Spring Boot + Spring Security mehrmals
Schritte zum Ausführen von Spring Boot beziehen sich auf die Werte in der Eigenschaftendatei
Zusammenfassung der Auswahl von Elementen in Selen
[Rails] Verwendung von Auswahlfeldern in Ransack
So verkleinern Sie das Spring Boot Docker-Image
Die Geschichte der Erhöhung der Spring Boot 1.5-Serie auf die 2.1-Serie
Servlet-Filter mit Spring Boot verwenden [Spring Boot 1.x, 2.x kompatibel]
Ausgabe der Verwendung der Slice-Methode
So definieren Sie mehrere orm.xml in Spring4, JPA2.1
[Rails] Verwendung von PostgreSQL in einer Vagrant-Umgebung
[Spring Boot] So verweisen Sie auf die Eigenschaftendatei
Zusammenfassung dessen, was ich in Spring Batch gelernt habe
Spring Boot - So stellen Sie das Sitzungszeitlimit ein
Verwendung von Map
Wie benutzt man rbenv?
Verwendung mit_option
Verwendung von fields_for
Verwendung von java.util.logging
Verwendung der Karte
Verwendung von collection_select