我升级到了Spring Boot 3,当我通过
--spring.batch.job.names
。
这是我的主要课程:
@SpringBootApplication
@EnableJpaRepositories("path.to.my.repositories")
@EntityScan("path.to.my.entities")
public class MyBatchApplication{
public static void main(String[] args) {
System.exit(SpringApplication.exit(SpringApplication.run(MyBatchApplication.class, args)));
}
}
这是我的配置
@Configuration
@EnableBatchProcessing(modular = true)
public class MyModularBatchJobContextConfiguration {
@Bean
ApplicationContextFactory getJobAContext() {
return new GenericApplicationContextFactory(JobAConfig.class);
}
@Bean
ApplicationContextFactory getJobBContext() {
return new GenericApplicationContextFactory(JobBConfig.class);
}
}
和
JobA.class
和
JobB.class
基本上是一样的:
public class JobAConfig {
private static final String MY_JOB_NAME = "jobA"
@Autowired
private EntityManagerFactory emf;
@Bean
public Job jobA(JobRepository jobRepository, Step myStep) {
return new JobBuilder(MY_JOB_NAME, jobRepository)
.flow(myStep)
.end()
.build();
}
@Bean
public Step myStep(JpaTransactionManager transactionManager,
JobRepository jobRepository,
FlatFileItemReader<MyEntity> reader,
ItemProcessor<MyEntity, MyEntity> processor,
JpaItemWriter<MyEntity> entityWriter) {
return new StepBuilder(MY_STEP_NAME, jobRepository)
.<MyEntity, MyEntity>chunk(10, transactionManager)
.reader(reader)
.processor(processor)
.writer(plzOrtEntityWriter)
.transactionManager(transactionManager)
.build();
}
// Reader, Writer, Processor...
当我和
java -jar mybatchapplication.jar --spring.batch.job.names=jobA
什么也没发生,作业没有开始。
2023-05-11T22:05:21.823+02:00 INFO 9716 --- [ main] d.f.r.batch.MyBatchApplication: Starting MyBatchApplicationusing Java 17.0.5 with PID 9716 (C:\gits\mygit\batch\target\mybatchapplication.jar started by me in C:\gits\mygit)
2023-05-11T22:05:21.825+02:00 INFO 9716 --- [ main] d.f.r.batch.MyBatchApplication: No active profile set, falling back to 1 default profile: "default"
2023-05-11T22:05:22.112+02:00 INFO 9716 --- [ main] o.s.b.c.c.annotation.BatchRegistrar : Finished Spring Batch infrastructure beans configuration in 6 ms.
2023-05-11T22:05:22.118+02:00 INFO 9716 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2023-05-11T22:05:22.149+02:00 INFO 9716 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 25 ms. Found 2 JPA repository interfaces.
2023-05-11T22:05:22.571+02:00 INFO 9716 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]
2023-05-11T22:05:22.616+02:00 INFO 9716 --- [ main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.1.7.Final
2023-05-11T22:05:22.895+02:00 INFO 9716 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2023-05-11T22:05:22.995+02:00 INFO 9716 --- [ main] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Driver does not support get/set network timeout for connections. (Receiver class org.h2.jdbc.JdbcConnection does not define or inherit an implementation of the resolved method 'abstract int getNetworkTimeout()' of interface java.sql.Connection.)
2023-05-11T22:05:22.998+02:00 INFO 9716 --- [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection conn0: url=jdbc:h2:file:~/mydb user=SA
2023-05-11T22:05:22.999+02:00 INFO 9716 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2023-05-11T22:05:23.016+02:00 INFO 9716 --- [ main] SQL dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
2023-05-11T22:05:23.542+02:00 INFO 9716 --- [ main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
2023-05-11T22:05:23.552+02:00 INFO 9716 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2023-05-11T22:05:23.588+02:00 INFO 9716 --- [ main] o.s.b.c.r.s.JobRepositoryFactoryBean : No database type set, using meta data indicating: H2
2023-05-11T22:05:23.613+02:00 INFO 9716 --- [ main] o.s.b.c.l.support.SimpleJobLauncher : No TaskExecutor has been set, defaulting to synchronous executor.
2023-05-11T22:05:24.294+02:00 WARN 9716 --- [ main] o.s.b.c.l.AbstractListenerFactoryBean : org.springframework.batch.item.ItemProcessor is an interface. The implementing class will not be queried for annotation based listener configurations. If using @StepScope on a @Bean method, be sure to return the implementing class so listener annotations can be used.
2023-05-11T22:05:24.322+02:00 INFO 9716 --- [ main] .c.a.BatchObservabilityBeanPostProcessor : No Micrometer observation registry found, defaulting to ObservationRegistry.NOOP
2023-05-11T22:05:24.358+02:00 INFO 9716 --- [ main] .c.a.BatchObservabilityBeanPostProcessor : No Micrometer observation registry found, defaulting to ObservationRegistry.NOOP
2023-05-11T22:05:24.370+02:00 WARN 9716 --- [ main] o.s.b.c.l.AbstractListenerFactoryBean : org.springframework.batch.item.ItemProcessor is an interface. The implementing class will not be queried for annotation based listener configurations. If using @StepScope on a @Bean method, be sure to return the implementing class so listener annotations can be used.
2023-05-11T22:05:24.371+02:00 INFO 9716 --- [ main] .c.a.BatchObservabilityBeanPostProcessor : No Micrometer observation registry found, defaulting to ObservationRegistry.NOOP
2023-05-11T22:05:24.371+02:00 INFO 9716 --- [ main] .c.a.BatchObservabilityBeanPostProcessor : No Micrometer observation registry found, defaulting to ObservationRegistry.NOOP
2023-05-11T22:05:24.395+02:00 INFO 9716 --- [ main] d.f.r.batch.MyBatchApplication: Started MyBatchApplicationin 2.848 seconds (process running for 3.242)
2023-05-11T22:05:24.406+02:00 INFO 9716 --- [ main] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
2023-05-11T22:05:24.410+02:00 INFO 9716 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...
2023-05-11T22:05:24.417+02:00 INFO 9716 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.
有人知道这里出了什么问题吗?
我也试过
--spring.batch.job.name=
,没有成功。