IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Boot Java Discussion :

[Batch] [Boot] paramètres de spring boot vers spring batch


Sujet :

Spring Boot Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2012
    Messages : 25
    Points : 15
    Points
    15
    Par défaut [Batch] [Boot] paramètres de spring boot vers spring batch
    Hello tous,

    je rencontre un problème en ce moment sur comment fait on pour passer les paramètres rest (spring boot ) vers spring batch .

    je m'explique : j'ai un service rest qui a des paramètres et j'aimerais le faire passer à mon job spring batch. voici ce que j''ai fait jusque là :

    Service rest
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    @GetMapping("/load/{id}")
       public BatchStatus load (@PathVariable String id) throws
       JobExecutionException {
       JobParameters jobParameters = new JobParametersBuilder()
                   .addLong("time", System.currentTimeMillis())
                   .addString("key", id).toJobParameters();
     
           JobExecution jobExecution = jobLauncher.run(job, jobParameters);
     
           return jobExecution.getStatus();
       }
    Mon batch config

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    @Configuration
    @EnableBatchProcessing
    public class BatchConfig {
     
        @Value("${path.to.react.file}")
        private Resource resource;
     
        @Autowired
        public JobBuilderFactory jobBuilderFactory;
     
        @Autowired
        public StepBuilderFactory stepBuilderFactory;
     
        @Autowired
        UserDao userDao;
     
        @Bean
        public Job job() {
            return jobBuilderFactory.get("readCSVFilesJob")
                    .incrementer(new RunIdIncrementer())
                    .start(step())
                    .build();
        }
     
        @JobScope
        @Bean
        public Step step() {
            return stepBuilderFactory.get("step1").<UserDTO, UserDTO>chunk(100)
                    .reader(Reader.reader(resource))
                    .processor(new Processor())
                    .writer(new Writer(userDao))
                    .build();
        }
    }
    Mon Reader
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    public final class Reader  {
     
        /**
         * Constructor
         */
        private Reader() {
        }
     
        /**
         * Reader for read CSV file
         * @param resource
         * @return
         */
        public static FlatFileItemReader<UserDTO> reader (Resource resource) {
     
            FlatFileItemReader<UserDTO> flatFileItemReader = new FlatFileItemReader<>();
            flatFileItemReader.setResource(resource);
            flatFileItemReader.setName("CSV-React");
            flatFileItemReader.setLinesToSkip(1);
            flatFileItemReader.setLineMapper(lineMapper());
            return flatFileItemReader;
        }
     
     
        /**
         * The line mapper
         * @return
         */
        private static LineMapper<UserDTO> lineMapper() {
     
            DefaultLineMapper<UserDTO> defaultLineMapper = new DefaultLineMapper<>();
            DelimitedLineTokenizer lineTokenizer = new DelimitedLineTokenizer();
     
            lineTokenizer.setDelimiter(";");
            lineTokenizer.setStrict(false);
            lineTokenizer.setNames("AC Program", "Request Number", "Request Type", "Creation Date", "User ID", "User Name",
                   "User Company", "Requestor ID", "Requestor Name", "Application", "Criteria", "Last Status", "Last Updated By",
                    "Last Status Date", "Applicable Workflown Name", "KO");
     
            BeanWrapperFieldSetMapper<UserDTO> fieldSetMapper = new BeanWrapperFieldSetMapper<>();
            fieldSetMapper.setTargetType(UserDTO.class);
     
            defaultLineMapper.setLineTokenizer(lineTokenizer);
            defaultLineMapper.setFieldSetMapper(fieldSetMapper);
     
            return defaultLineMapper;
     
        }
    ainsi que le writer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    @Component
    @StepScope
    public class Writer implements ItemWriter<UserDTO> {
     
     
        private  UserDao userDao;
     
        @Value("#{jobParameters['key']}")
        private String key;
     
        public Writer(UserDao userDao) {
            this.userDao = userDao;
     
        }
     
        @Override
        public void write(List<? extends UserDTO> items) throws Exception {
            userDao.writePnoFile(items);
        }
    }
    Dans mon writer je n'arrive pas à récuperer la valeur de mon paramètre. y a t il quelqu'un pour m'aider svp ?
    Merci d'avance

    PS : j'ai fait expres d'omettre la partie process.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2012
    Messages : 25
    Points : 15
    Points
    15
    Par défaut
    Personne pour m'aider ?

Discussions similaires

  1. Spring Batch, Spring Boot et magie noire
    Par axel584 dans le forum Spring Boot
    Réponses: 1
    Dernier message: 27/11/2018, 13h52
  2. [Batch] Traitement par lot avec spring batch
    Par thierryler dans le forum Spring
    Réponses: 0
    Dernier message: 04/02/2010, 17h34
  3. [Batch] Spring batch ou Quartz + Spring?
    Par Yoann.chambonnet dans le forum Spring
    Réponses: 2
    Dernier message: 06/01/2010, 13h07
  4. [Batch] Problème avec Spring Batch
    Par meriem15 dans le forum Spring
    Réponses: 6
    Dernier message: 16/12/2009, 17h41
  5. [Batch] Spring Batch et Hibernate
    Par *alexandre* dans le forum Spring
    Réponses: 1
    Dernier message: 08/10/2009, 14h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo