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

PHPz
PHPzasal
2023-09-20 14:37:41704semak imbas

如何使用Java开发一个基于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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn