Rumah >Java >javaTutorial >Cara menggunakan Java untuk membangunkan aplikasi pemprosesan kelompok berdasarkan Spring Batch
Cara menggunakan Java untuk membangunkan aplikasi pemprosesan kelompok berdasarkan Spring Batch, contoh kod khusus diperlukan
Aplikasi pemprosesan kelompok ialah kaedah pemprosesan data biasa, yang boleh berjalan di latar belakang dan memproses sejumlah besar data secara automatik. Membangunkan aplikasi pemprosesan kelompok dalam Java boleh dicapai melalui rangka kerja Spring Batch ialah rangka kerja pemprosesan kelompok sumber terbuka yang menyediakan satu set komponen boleh guna semula untuk membantu pembangun memudahkan pembangunan aplikasi pemprosesan kelompok.
Yang berikut akan memperkenalkan cara menggunakan Java untuk membangunkan aplikasi pemprosesan kelompok berdasarkan Spring Batch, dan memberikan contoh kod terperinci.
Langkah 1: Import kebergantungan
Mula-mula, kita perlu mengimport kebergantungan Spring Batch ke dalam projek. Anda boleh menambah kebergantungan berikut dalam fail pom.xml projek:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-batch</artifactId> </dependency>
Langkah 2: Konfigurasikan sumber data dan konfigurasi asas Spring Batch
Seterusnya, kita perlu mengkonfigurasi sumber data dan konfigurasi asas Spring Batch. Anda boleh menambah konfigurasi berikut dalam fail application.properties (atau application.yml):
spring.datasource.url=<数据库URL> spring.datasource.username=<用户名> spring.datasource.password=<密码> spring.batch.job.names=<批处理作业名称>
Di sini anda perlu menggantikan db747d8dc5d744ba1cd6e5bc7eec910b, 04c1ff2262982de9e3375be4e1903b50, 3c95c81efb7436ebf19ffd756b42f4f4 nilai sebenar.
Langkah 3: Buat model data
Kemudian, kita perlu mencipta kelas model data untuk mewakili data dalam proses kelompok. Sebagai contoh, dengan mengandaikan bahawa aplikasi kelompok kami ingin memproses jadual maklumat pengguna, kami boleh mencipta kelas Pengguna untuk mewakili maklumat pengguna:
public class User { private String name; private int age; // 省略getter和setter方法 }
Langkah 4: Buat pembaca (ItemReader)
Seterusnya, kita perlu mencipta ItemReader untuk membaca data. Spring Batch menyediakan pelbagai pelaksanaan pembaca lalai, seperti pembaca JDBC (JdbcCursorItemReader), pembaca fail (FlatFileItemReader), dsb. Di sini kami menggunakan pembaca JDBC untuk membaca data daripada pangkalan data.
@Bean public ItemReader<User> userItemReader(DataSource dataSource) { JdbcCursorItemReader<User> reader = new JdbcCursorItemReader<>(); reader.setDataSource(dataSource); reader.setSql("SELECT name, age FROM user"); reader.setRowMapper((resultSet, rowNum) -> { User user = new User(); user.setName(resultSet.getString("name")); user.setAge(resultSet.getInt("age")); return user; }); return reader; }
Di sini kami menggunakan JdbcCursorItemReader dan menetapkan sumber data melalui kaedah setDataSource(), tetapkan pernyataan SQL melalui kaedah setSql() dan tetapkan pemetaan set hasil melalui kaedah setRowMapper().
Langkah 5: Buat pemproses (ItemProcessor)
Kemudian, kita perlu mencipta ItemProcessor untuk memproses data. ItemProcessor bertanggungjawab untuk memproses dan menukar data yang dibaca. Sebagai contoh, kita boleh mencipta UserItemProcessor untuk menambah 1 pada umur objek Pengguna:
public class UserItemProcessor implements ItemProcessor<User, User> { @Override public User process(User user) { user.setAge(user.getAge() + 1); return user; } }
Langkah 6: Buat penulis (ItemWriter)
Seterusnya, kita perlu mencipta ItemWriter untuk menulis data yang diproses. Spring Batch juga menyediakan pelbagai pelaksanaan penulis lalai, seperti penulis JDBC (JdbcBatchItemWriter), penulis fail (FlatFileItemWriter), dll. Di sini kami menggunakan penulis JDBC untuk menulis data ke pangkalan data.
@Bean public ItemWriter<User> userItemWriter(DataSource dataSource) { JdbcBatchItemWriter<User> writer = new JdbcBatchItemWriter<>(); writer.setItemSqlParameterSourceProvider(new BeanPropertyItemSqlParameterSourceProvider<>()); writer.setSql("INSERT INTO user (name, age) VALUES (:name, :age)"); writer.setDataSource(dataSource); return writer; }
Di sini kami menggunakan JdbcBatchItemWriter dan menetapkan penyedia parameter melalui kaedah setItemSqlParameterSourceProvider(), tetapkan pernyataan SQL melalui kaedah setSql() dan tetapkan sumber data melalui kaedah setDataSource().
Langkah 7: Cipta Kerja
Akhir sekali, kita perlu mencipta Kerja untuk mengandungi pembaca, pemproses dan penulis, serta komponen Spring Batch yang lain. Pekerjaan dan Langkah boleh dibuat menggunakan JobBuilderFactory dan StepBuilderFactory. Sebagai contoh, kita boleh membuat userJob yang mengandungi userStep:
@Bean public Job userJob(JobBuilderFactory jobBuilderFactory, Step userStep) { return jobBuilderFactory.get("userJob") .incrementer(new RunIdIncrementer()) .flow(userStep) .end() .build(); } @Bean public Step userStep(StepBuilderFactory stepBuilderFactory, ItemReader<User> userItemReader, ItemProcessor<User, User> userItemProcessor, ItemWriter<User> userItemWriter) { return stepBuilderFactory.get("userStep") .<User, User>chunk(10) .reader(userItemReader) .processor(userItemProcessor) .writer(userItemWriter) .build(); }
Di sini kita menggunakan kaedah get() StepBuilderFactory untuk mencipta Steps dan menetapkan saiz tugas kelompok (iaitu, jumlah data yang diproses setiap kali) melalui kaedah chunk() ).
Pada ketika ini, kami telah menyelesaikan pembangunan aplikasi pemprosesan kelompok berdasarkan Spring Batch. Kerja kelompok boleh dimulakan dengan menjalankan userJob.
Ringkasan
Artikel ini memperkenalkan cara menggunakan Java untuk membangunkan aplikasi pemprosesan kelompok berdasarkan Spring Batch. Daripada mengimport kebergantungan, mengkonfigurasi sumber data dan konfigurasi asas Spring Batch, kepada mencipta model data, pembaca, pemproses, penulis dan pekerjaan, contoh kod terperinci disediakan dalam artikel. Saya harap artikel ini dapat membantu pembaca dengan cepat mula membangunkan aplikasi pemprosesan kelompok berdasarkan Spring Batch di Java.
Atas ialah kandungan terperinci Cara menggunakan Java untuk membangunkan aplikasi pemprosesan kelompok berdasarkan Spring Batch. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!