zoukankan      html  css  js  c++  java
  • 流读取Properties文件/Joda-time时间与字符串转换/POJO与VO/FTP上传服务

    一、流读取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;
        }
    }
  • 相关阅读:
    对于dll(动态链接库)的理解
    Java中异常发生时代码执行流程
    使用Gitea搭建git服务
    python-grpc
    Docker环境变量设置
    pandas操作excel
    docker笔记
    flask笔记
    索引原理
    视图、触发器、事务、存储过程
  • 原文地址:https://www.cnblogs.com/noaman/p/8811126.html
Copyright © 2011-2022 走看看