我在spring sftp
文件中配置了以下application-context
bean ID。它定义了两个sftp目标,我的应用程序将不同类型的文件发送到:
<bean id="targetA"
class="com.sftp.Sender">
<constructor-arg value="${A.host}"/>
<constructor-arg value="${A.username}"/>
<constructor-arg value="${A.remoteDir}"/>
<constructor-arg value="${A.notificationDir}"/>
</bean>
<bean id="targetB" class="com.sftp.Sender">
<constructor-arg value="${B.host}"/>
<constructor-arg value="${B.username}"/>
<constructor-arg value="${B.remoteDir}"/>
</bean>
我的main
课程看起来像这样:
public class Main {
Occ occ= ctx.getBean("occ", Occ.class);
public static void main(String[] args) {
if (args != null && args.length >= 1) {
String target = args[0];
occ.rePublish(target);
} else {
String target = "Both";
orc.processReports(target);
}
}
我的Occ
课程类似:
public class Occ {
public void rePublish(String target) {
processReports(target);
}
public void processReports(String target) {
// determines who the target is and prepare the appropriate
// file to send to that target
if (target.equal("Both")) {
// prepare both target A and B files
}
}
}
通常,当程序执行时,它应该为目标A和目标B准备两组文件。在某些情况下,一次传输可能会失败,我希望能够为该目标准备和分发文件。我只能考虑在arguments
方法中将重新发送目标作为main
传递。但这是最好的方法吗?你有什么想法,你会怎么做?我可以用其他更好的方式重构上面的代码吗?