我想通過使用CommandLineJobRunner
作爲參數執行我的作業來初始化我的閱讀器中的屬性(文件的路徑),該屬性的值將被傳遞到jobParameters中文件的路徑。使用jobParameters初始化要在Spring Init方法中使用的屬性
這裏是我的bean的配置:
<bean id = "reader" class = "com.xyz.reporting.myReader" scope = "step" init-method = "init">
<property name = "resource" value = "#{jobExecutionContext ['input.fileName']}" />
</ bean>
下面是一個命令:
java -cp "target/dependency-jars/*: target/my-project.jar" org.springframework.batch.core.launch.support.CommandLineJobRunner src/main/resources/job.xml interceptorJob input.filename = "filePath"
在我的讀者我想開在init方法的文件(在bean配置中定義)
public final class MyReader implements ItemReader<Message>
{
...
/**
* input filename
*/
private String resource;
public void setResource(String resource_p)
{
resource = resource_p;
}
public void init() throws Exception
{
File file = new File (resource);
BufferedReader br = new BufferedReader (new FileReader (file));
}
...
}
這樣做會是一個很好的做法嗎?在調用init方法時是否會初始化resource屬性,即jobParameters是否已經被初始化?
在繼續之前,這段代碼是否可以通過Junit測試?
使用'#{jobParameters}' –