Apache Commons NET: Soll ich bei jeder Verbindung ein neues FTPClient-Objekt erstellen oder eines wiederverwenden?

8

Ich frage mich nur: In meiner Java-Anwendung sollte ich jedes Mal, wenn ich eine Verbindung zu einem FTP-Server herstellen muss, ein neues FTPClient-Objekt erstellen oder ein FTPClient () -Objekt erstellen und jedes Mal wiederverwenden Verbindung zu einem FTP-Server herstellen?

    
AlexPriceAP 31.07.2011, 20:20
quelle

3 Antworten

3

Die Wiederverwendung ist besser, da Sie nicht jedes Mal eine neue Instanz benötigen, wenn Sie eine neue Verbindung erstellen, selbst auf einem neuen Server. Weil die Methoden zum Verbinden und Trennen die Arbeit für Sie erledigen können.

Nutze also so viele Objekte wie möglich.

    
Sharique Abdullah 31.07.2011, 20:29
quelle
11

Beide funktionieren, aber apache commons.net-Bibliotheken sind nicht threadsicher , wenn Sie also eines verwenden Client mit mehreren Threads, beachten Sie, dass Sie den Zugriff darauf synchronisieren müssen.

    
levand 31.07.2011 22:43
quelle
3

Ohne genau zu wissen, was Ihr Code zu tun hat (wie oft es verbindet, wie viele Dateien es übertragen muss usw.), ist es schwer zu sagen.

Meine persönliche Meinung wäre ein FTPClient() , aber verbinden / authentifizieren / übertragen / trennen Sie jedes Mal, wenn Sie etwas tun müssen (vorausgesetzt, es wird eine angemessene Lücke dazwischen geben). Die Begründung ist, dass FTP-Sitzungen oft ziemlich kurze Inaktivitätszeiten haben.

    
Squonk 31.07.2011 20:31
quelle