2015-06-23 3 views
0

Есть ли весенняя партия для любых динамических/общих файлов? Например, если у меня есть несколько требований к генерации файла, и у меня есть один вид, созданный для каждой цели, все, что я хочу сделать, это указать имя представления, и я хочу, чтобы spring-batch извлекал данные из представления в плоский файл с заголовки столбцов. Это так же просто, как если бы вы использовали разработчика dbviz или sql, просто экспортируйте результат запроса в файл.Весной пакетный динамический файловый писатель

Недавно у меня было 4 различных требования к извлечению данных в файл, и я повторил конфигурационный файл и создал запись и компоновщик записей для сопоставления компонента с столбцами для каждого файла. Вместо того, чтобы повторять весь этот процесс каждый раз, я смотрю, чтобы увидеть, поддерживает ли Spring или какие-либо другие java-структуры общий подход к извлечению файла на основе таблицы и ее столбцов без записи наборов наборов результатов или для работы с экстракторами полей.

Я могу создать общий генератор партийных файлов, но хотел бы проверить, работает ли весенняя партия, что похоже на основную вещь?

Также, если я создаю общий экстрактор, тогда атрибуты компонента будут иметь динамическую динамическую структуру на основе имен столбцов представления. Поэтому в этом случае, если у меня около 50 столбцов, я не хочу указывать каждый атрибут в fieldExtractor, я хочу, чтобы все атрибуты были извлечены. В настоящее время я указываю атрибуты в конфигурации весны, как указано ниже, но я не хочу описывать имена атрибутов. Я просто хочу сказать, извлечь все атрибуты. Это возможно?

<bean id="CsvItemWriter" class="some.class.FileWriter" scope="step"> 
    <property name="resource" value="file://#{jobParameters['file.name']}"/>   

    <property name="shouldDeleteIfExists" value="true" /> 
    <property name="lineAggregator"> 
    <bean class="org.springframework.batch.item.file.transform.DelimitedLineAggregator"> 
     <property name="delimiter"> 
       <util:constant static-field="org.springframework.batch.item.file.transform.DelimitedLineTokenizer.DELIMITER_TAB" /> 
     </property> 

     <property name="fieldExtractor"> <bean class="org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor"> 
       <property name="names" value="name.last, name.first, name.middle, birthDate, gender, homePhone, cellPhone"/> 
      </bean> 
     </property> 
    </bean> 
    </property> 

ответ

0

В случае, если некоторые один нуждается в этом, я нашел подобный вопрос, так что было трудно найти. Я использую columnMapRowMapper, как упомянуто here

+0

Спасибо .. Знаете, что противоположная реализация этого ... Читатель прочитает из плоского файла, и писатель напишет в таблицу БД. Там что-то похожее на ColumnRowMapper для файла Flat писатель? –

Смежные вопросы