Tôi chỉ tự hỏi: trong ứng dụng Java của mình, mỗi khi tôi cần kết nối với máy chủ FTP, tôi có nên tạo đối tượng FTPClient mới hay tôi nên tạo một đối tượng FTPClient() và sử dụng lại mỗi khi tôi kết nối đến một máy chủ FTP?Apache Commons NET: Tôi có nên tạo một đối tượng FTPClient mới trên mỗi kết nối hoặc sử dụng lại không?
Trả lời
Việc tái sử dụng sẽ tốt hơn vì bạn không cần một phiên bản mới mỗi lần bạn tạo kết nối mới, ngay cả với máy chủ mới. Bởi vì các phương thức kết nối và ngắt kết nối có thể thực hiện công việc cho bạn.
Vì vậy, hãy sử dụng lại càng nhiều đối tượng càng tốt.
Không biết chính xác mã của bạn phải làm gì (tần suất nó kết nối, cần bao nhiêu tệp cần truyền ...) khó nói.
Ý kiến cá nhân của tôi sẽ là FTPClient()
nhưng kết nối/xác thực/chuyển/ngắt kết nối mỗi lần bạn cần làm điều gì đó (giả sử sẽ có khoảng cách hợp lý giữa). Lý do là các phiên FTP thường có thời gian chờ không hoạt động khá ngắn.
Cả hai sẽ hoạt động, nhưng thư viện commons.net apache là not thread safe, vì vậy nếu bạn sử dụng một khách hàng có nhiều luồng, hãy lưu ý rằng bạn sẽ phải đồng bộ hóa quyền truy cập vào nó.
- 1. Apache Commons FTPClient Treo
- 2. Apache Commons Net FTPClient hủy bỏ lưu trữ tệp
- 3. Mã hóa tên tệp trong Apache Commons Net FTPClient
- 4. Sử dụng Proxy FTP với apache commons-net
- 5. Tăng tốc Apache Commons FTPClient chuyển
- 6. Trang chuyên sâu Ajax: sử dụng lại cùng một đối tượng XMLHttpRequest hoặc tạo một đối tượng mới mỗi lần?
- 7. Sử dụng lại đối tượng XMLHttpRequest hoặc tạo đối tượng mới?
- 8. tạo đối tượng từ đóng JS: tôi có nên sử dụng từ khóa "mới" không?
- 9. Email của Apache Commons và sử dụng lại các kết nối SMTP
- 10. Vấn đề đối tượng kết nối DBCP của Apache Commons, Chủ đề: ClassCastException trong org.apache.tomcat.dbcp.dbcp.PoolingDataSource $ PoolGuardConnectionWrapper
- 11. Tiến trình giám sát bằng cách sử dụng Apache Commons FTPClient
- 12. Tôi có nên chỉ sử dụng một dịch vụ mới() hoặc nhiều hơn không?
- 13. Sử dụng 'trở lại' khi tạo đối tượng với 'mới'
- 14. Apache Commons FTPClient.listFiles
- 15. Có nên tạo bảng mới cho mỗi người dùng trên một ứng dụng web không?
- 16. . Net Remoting chỉ sử dụng một kết nối?
- 17. Tôi có nên tạo đối tượng DateRange không?
- 18. Apache Commons JCI ReloadingClassLoader
- 19. Hai cách tạo đối tượng javascript, tôi nên sử dụng đối tượng nào?
- 20. Chỉ nên có một đối tượng EventSource cho mỗi ứng dụng?
- 21. Tôi có nên gán hoặc đặt lại unique_ptr không?
- 22. Numpy: Tôi có nên sử dụng newaxis hoặc Không?
- 23. Ứng dụng khách IMAP trong Java: JavaMail API hoặc Apache Commons Net?
- 24. Tôi có nên sử dụng một LINQ DataContext hoặc nhiều?
- 25. Sử dụng lại trình quản lý thực thể bởi em.clear() hoặc tạo một trình quản lý đối tượng mới?
- 26. Trong Java, tôi có nên tạo một Gói, Thư mục hoặc Thư mục Nguồn mới không?
- 27. DDD: Các đối tượng kết nối là đối tượng thực thể hoặc đối tượng giá trị?
- 28. Tôi có nên chuyển vào hoặc đóng gói một kết nối trong DAO không?
- 29. Tôi có nên sử dụng em hoặc px không?
- 30. Nối dữ liệu vào một tệp bằng cách sử dụng Apache Commons I/O
Cảm ơn bạn, chỉ cần đảm bảo :) – AlexPriceAP
Tuy nhiên, nếu bạn muốn thực hiện các kết nối đồng thời, bạn có thể cần nhiều phiên bản. –
Bạn có bất kỳ dữ liệu nào về chi phí tạo một cá thể mới hay đây chỉ là phỏng đoán? –