一、流读取Properties文件
注意其中的静态块的使用,可以用来初始化。
public class PropertiesUtil { private static Logger logger = LoggerFactory.getLogger(PropertiesUtil.class); private static Properties props = null; static { String fileName = "mmall.properties"; props = new Properties(); try { props.load(new InputStreamReader(PropertiesUtil.class.getResourceAsStream(fileName))); } catch (IOException e) { logger.error("配置文件读取异常", e); } } public static String getProperty(String key){ String value = props.getProperty(key); if (value == null){ return null; } return value.trim(); } public static String getProperty(String key, String defaultValue){ String value = props.getProperty(key); if (value == null){ return defaultValue; } return value.trim(); } }
二、Joda-time的时间与字符串之间的转换
public class DateTimeUtil { private static final String STANDARD_FORMAT = "yyyy-MM-dd HH:mm:ss"; //str > date public static Date strToDate(String dateTimeStr){ DateTimeFormatter dateTimeFormat = DateTimeFormat.forPattern(STANDARD_FORMAT); DateTime dateTime = dateTimeFormat.parseDateTime(dateTimeStr); return dateTime.toDate(); } public static Date strToDate(String dateTimeStr, String formatStr){ DateTimeFormatter dateTimeFormat = DateTimeFormat.forPattern(formatStr); DateTime dateTime = dateTimeFormat.parseDateTime(dateTimeStr); return dateTime.toDate(); } //date > str public static String dateToStr(Date date){ if (date == null){ return null; } DateTime dateTime = new DateTime(date); return dateTime.toString(STANDARD_FORMAT); } public static String dateToStr(Date date, String formatStr){ if (date == null){ return null; } DateTime dateTime = new DateTime(date); return dateTime.toString(formatStr); } }
三、POJO与VO转换
POJO对象中有些字段值我们可能不需要,VO就是对POJO进一步加工,最后我们需要的是VO对象。
POJO:
package com.mmall.pojo; import java.math.BigDecimal; import java.util.Date; public class Product { private Integer id; private Integer categoryId; private String name; private String subtitle; private String mainImage; private String subImages; private String detail; private BigDecimal price; private Integer stock; private Integer status; private Date createTime; private Date updateTime; public Product(Integer id, Integer categoryId, String name, String subtitle, String mainImage, String subImages, String detail, BigDecimal price, Integer stock, Integer status, Date createTime, Date updateTime) { this.id = id; this.categoryId = categoryId; this.name = name; this.subtitle = subtitle; this.mainImage = mainImage; this.subImages = subImages; this.detail = detail; this.price = price; this.stock = stock; this.status = status; this.createTime = createTime; this.updateTime = updateTime; } public Product() { super(); } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getCategoryId() { return categoryId; } public void setCategoryId(Integer categoryId) { this.categoryId = categoryId; } public String getName() { return name; } public void setName(String name) { this.name = name == null ? null : name.trim(); } public String getSubtitle() { return subtitle; } public void setSubtitle(String subtitle) { this.subtitle = subtitle == null ? null : subtitle.trim(); } public String getMainImage() { return mainImage; } public void setMainImage(String mainImage) { this.mainImage = mainImage == null ? null : mainImage.trim(); } public String getSubImages() { return subImages; } public void setSubImages(String subImages) { this.subImages = subImages == null ? null : subImages.trim(); } public String getDetail() { return detail; } public void setDetail(String detail) { this.detail = detail == null ? null : detail.trim(); } public BigDecimal getPrice() { return price; } public void setPrice(BigDecimal price) { this.price = price; } public Integer getStock() { return stock; } public void setStock(Integer stock) { this.stock = stock; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public Date getUpdateTime() { return updateTime; } public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } }
VO:
package com.mmall.vo; import java.math.BigDecimal; import java.util.Date; /** * @author GenshenWang.nomico * @date 2018/4/10. */ public class ProductDetailVo { private Integer id; private Integer categoryId; private String name; private String subtitle; private String mainImage; private String subImages; private String detail; private BigDecimal price; private Integer stock; private Integer status; private String createTime; private String updateTime; //图片服务器URL前缀 private String imageHost; //父分类 private Integer parentCategoryId; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getCategoryId() { return categoryId; } public void setCategoryId(Integer categoryId) { this.categoryId = categoryId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSubtitle() { return subtitle; } public void setSubtitle(String subtitle) { this.subtitle = subtitle; } public String getMainImage() { return mainImage; } public void setMainImage(String mainImage) { this.mainImage = mainImage; } public String getSubImages() { return subImages; } public void setSubImages(String subImages) { this.subImages = subImages; } public String getDetail() { return detail; } public void setDetail(String detail) { this.detail = detail; } public BigDecimal getPrice() { return price; } public void setPrice(BigDecimal price) { this.price = price; } public Integer getStock() { return stock; } public void setStock(Integer stock) { this.stock = stock; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } public String getCreateTime() { return createTime; } public void setCreateTime(String createTime) { this.createTime = createTime; } public String getUpdateTime() { return updateTime; } public void setUpdateTime(String updateTime) { this.updateTime = updateTime; } public String getImageHost() { return imageHost; } public void setImageHost(String imageHost) { this.imageHost = imageHost; } public Integer getParentCategoryId() { return parentCategoryId; } public void setParentCategoryId(Integer parentCategoryId) { this.parentCategoryId = parentCategoryId; } }
package com.mmall.vo; import java.math.BigDecimal; /** * @author GenshenWang.nomico * @date 2018/4/10. */ public class ProductListVo { private Integer id; private Integer categoryId; private String name; private String mainImage; private Integer status; private BigDecimal price; private String subTitle; private String imageHost; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getCategoryId() { return categoryId; } public void setCategoryId(Integer categoryId) { this.categoryId = categoryId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getMainImage() { return mainImage; } public void setMainImage(String mainImage) { this.mainImage = mainImage; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } public BigDecimal getPrice() { return price; } public void setPrice(BigDecimal price) { this.price = price; } public String getImageHost() { return imageHost; } public void setImageHost(String imageHost) { this.imageHost = imageHost; } public String getSubTitle() { return subTitle; } public void setSubTitle(String subTitle) { this.subTitle = subTitle; } }
四、FTPServer上传
package com.mmall.util; import org.apache.commons.net.ftp.FTPClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.List; /** * @author GenshenWang.nomico * @date 2018/4/11. */ public class FTPUtill { private static final Logger logger = LoggerFactory.getLogger(FTPUtill.class); //todo FTP服务器未配置 private static String ftpIp = PropertiesUtil.getProperty("ftp.server.ip"); private static int ftpPort = 21; private static String ftpUser = PropertiesUtil.getProperty("mmallftp"); private static String ftpPass = PropertiesUtil.getProperty("ftppassword"); private String ip; private int port; private String user; private String pwd; private FTPClient ftpClient; public static Logger getLogger() { return logger; } public static String getFtpIp() { return ftpIp; } public static void setFtpIp(String ftpIp) { FTPUtill.ftpIp = ftpIp; } public static int getFtpPort() { return ftpPort; } public static void setFtpPort(int ftpPort) { FTPUtill.ftpPort = ftpPort; } public static String getFtpUser() { return ftpUser; } public static void setFtpUser(String ftpUser) { FTPUtill.ftpUser = ftpUser; } public static String getFtpPass() { return ftpPass; } public static void setFtpPass(String ftpPass) { FTPUtill.ftpPass = ftpPass; } public String getIp() { return ip; } public void setIp(String ip) { this.ip = ip; } public int getPort() { return port; } public void setPort(int port) { this.port = port; } public String getUser() { return user; } public void setUser(String user) { this.user = user; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public FTPClient getFtpClient() { return ftpClient; } public void setFtpClient(FTPClient ftpClient) { this.ftpClient = ftpClient; } public FTPUtill(String ip, int port, String user, String pass){ this.ip = ip; this.port = port; this.user = user; this.pwd = pass; } private boolean connectFTPServer(String ip, int port, String user, String pass){ boolean connectSuccess = false; ftpClient = new FTPClient(); try { ftpClient.connect(ip); connectSuccess = ftpClient.login(user, pass); } catch (IOException e) { logger.error("连接FTP服务器异常", e); } return connectSuccess; } public static boolean uploadFile(List<File> fileList){ FTPUtill ftpUtill = new FTPUtill(ftpIp, ftpPort, ftpUser, ftpPass); logger.info("开始连接ftp服务器"); boolean result = ftpUtill.uploadFile("img", fileList); logger.info("结束上传,上传结果:{}"); return result; } private boolean uploadFile(String remotePath, List<File> fileList){ boolean uploaded = true; FileInputStream fis = null; boolean isConnectSuccess = connectFTPServer(this.ip, this.port, this.user, this.pwd); if (isConnectSuccess){ try { ftpClient.changeWorkingDirectory(remotePath); ftpClient.setBufferSize(1024); ftpClient.setControlEncoding("UTF-8"); ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); ftpClient.enterLocalPassiveMode(); for (File file : fileList){ fis = new FileInputStream(file); ftpClient.storeFile(file.getName(), fis); } } catch (IOException e) { logger.error("上传文件异常", e); uploaded = false; } } return uploaded; } }