说明:通过GenericObjectPool实现的FTP连接池,记录一下以供以后使用
环境:
JDK版本1.8
框架 :springboot2.1
文件服务器: Serv-U
1.引入依赖
commons-net
commons-net
3.3
org.apache.commons
commons-pool2
2.4.2
2.创建ftp.properties
ftp.Host=192.168.xx.xx 本机ip
ftp.Port=21
ftp.UserName=root
ftp.PassWord=root
ftp.workDir=/images
ftp.encoding=utf-8
ftp.root=/
ftp.MaxTotal=100
ftp.MinIdel=2
ftp.MaxIdle=5
ftp.MaxWaitMillis=3000
3.创建配置类FtpConfig
package com.hcq.demo.util;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/**
* fileName:FtpConfig
* description:
* author:hcq
* createTime:2019-03-15 15:04
*/
@Component
@ConfigurationProperties(prefix="ftp")
@PropertySource("classpath:ftp.properties")
public class FtpConfig {
private String Host;
private int Port;
private String UserName;
private String PassWord;
private String workDir;
private String encoding;
private String root;
private int MaxTotal;
private int MinIdel;
private int MaxIdle;
private int MaxWaitMillis;
.......省略get set
}
4.创建FtpClientFactory工厂类
package com.hcq.demo.util;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.pool2.PooledObject;
import org.apache.commons.pool2.impl.DefaultPooledObject;
import org.springframework.beans.factory.annotat