123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package com.caesolver.ftp;
- import org.apache.commons.net.ftp.FTPClient;
- import org.apache.commons.pool2.impl.GenericObjectPool;
- import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- //@Component
- public class FtpPool {
- FtpClientFactory factory;
- private final GenericObjectPool<FTPClient> internalPool;
- //初始化连接池
- public FtpPool(@Autowired FtpClientFactory factory){
- this.factory=factory;
- FtpConfig config = factory.getConfig();
- GenericObjectPoolConfig<FTPClient> poolConfig = new GenericObjectPoolConfig<FTPClient>();
- poolConfig.setMaxTotal(config.getMaxTotal());
- poolConfig.setMinIdle(config.getMinIdel());
- poolConfig.setMaxIdle(config.getMaxTotal());
- poolConfig.setMaxWaitMillis(config.getMaxWaitMillis());
- this.internalPool = new GenericObjectPool<FTPClient>(factory,poolConfig);
- }
- //从连接池中取连接
- public FTPClient getFTPClient() {
- try {
- return internalPool.borrowObject();
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
- //将链接归还到连接池
- public void returnFTPClient(FTPClient ftpClient) {
- try {
- internalPool.returnObject(ftpClient);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- /**
- * 销毁池子
- */
- public void destroy() {
- try {
- internalPool.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
|