2016-03-19 16 views
0

私はSpringバッチを初めて使用し、出力ファイルにカスタム日付(今日の日付ではない)を追加しようとしています。ファイルライタステップでジョブパラメータ&のジョブ実行コンテキストを取得するサンプルを見つけることができました。しかし私のシナリオでは解決策を見つけることができませんでした。誰かがこれを助けることができるでしょうか。 与えられた: <bean id="abstractFileWriter" class="org.springframework.batch.item.file.FlatFileItemWriter" abstract="true"> <property name="resource" value="file:\target\HelloWorld.{MMDDYYYY}.txt"/> <property name="shouldDeleteIfExists" value="true" />
</bean>
Spring Batch - Filewriterファイル名にカスタム日付を追加する

上記のファイルライターは、同じファイルにデータを追加するいくつかのステップの親です。

予想される出力は次のとおりです。 {MMDDYYYY}が01152016に設定されている場合、最終出力ファイル名はHelloWord.01152016.txtになります。

値の代わりに参照でリソースを渡す必要がある場合は、どうやって共有してください。

お知らせください。

<property name="resource" value="file:\target\HelloWorld.{MMDDYYYY}.txt"/> 

とコードで、その後setResource:あなたは次の行を削除した場合にどのような

答えて

0

。そうすれば、コード内の好きなものに名前を付けることができます。

String myPath = "/Users/myName/blahblahblah_" + myDate + ".txt"; 
Resource resource = new FileSystemResource(myPath); 
abstractFileWriter.setResource(resource); 

私にはクラスまたはメソッドがありません。私はあなたが提供した設定とドキュメントに基づいてこれを書いた。もし私がこのためのメソッドを書くなら、次のようなものを書くかもしれませんが、あなたが渡しているオブジェクトのタイプやコンバーターを追加しているかのような未知のものがありますか?

@Autowired 
private abstractFileWriter; 

public <T> void writeFile(List<T> itemList, String fileName, Date date) throws Exception{ 
    JavaConfigApplicationContext context = new JavaConfigApplicationContext(...); 
    FlatFileItemWriter writer = context.getBean(FlatFileItemWriter.class, "abstractFileWriter"); 
    SimpleDateFormat sdf = new SimpleDateFormat("MMddyyyy"); 
    String stringDate = sdf.format(date); 
    fileName = fileName + stringDate + ".txt"; 
    Resource resource = new FileSystemResource(fileName); 
    writer.setResource(resource); 
    writer.write(itemList); 
} 
+0

ありがとうございます。私はこれを行うための別の方法も見つけました。ビジネスロジックに基づいて曜日を返すためのutilクラスとメソッドを作成しました。クラスとメソッド全体を投稿できますか? – Naran

関連する問題