Rumah > Java > javaTutorial > teks badan

Cara menggunakan Java untuk membangunkan aplikasi pemprosesan kelompok berdasarkan Spring Batch

PHPz
Lepaskan: 2023-09-20 14:37:41
asal
676 orang telah melayarinya

如何使用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>
Salin selepas log masuk

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=<批处理作业名称>
Salin selepas log masuk

Di sini anda perlu menggantikan , , 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方法
}
Salin selepas log masuk

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;
}
Salin selepas log masuk

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;
    }
}
Salin selepas log masuk

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;
}
Salin selepas log masuk

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();
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan