• 新巴巴运动网 项目第四天


    新巴巴运动网 项目第四天

     

    1. 今天内容

      1. 介绍FastDFS 分布式文件系统 原理
      2. 为什么要使用FastDFS 保存到Tomcat 缺点 保存到FastDFS 优点
      3. FastDFS搭建(由运维工程师) 网管
      4. FastDFS的Java接口(保存图片到FastDFS上去)
      5. 修改页面 提交
      6. 全选
      7. 删除(批量)
      8. 商品表四张
      9. 逆向工程(Dao接口、Mapper、POJO) 增强版
      10. 测试工程(逆向工程使用)
      11. 商品管理—列表查询(带条件+分页)

         

         

    2. 介绍FastDFS 原理

    FastDFS分布式文件系统

    原理图

    1. 优点:

    FastDFS相比于Tomcat :不存在单点故障问题、支持容灾。

    FastDFS相比于Tomcat:集群 (安全) 保存图片过多时 扩容 分配合理 。

    FastDFS相比于Tomcat: 具有备份功能、不怕磁盘损坏。

    1. FastDFS安装

    公司有运维工程师安装 (中型公司及以上)

    自行安装(小公司)如果没有运维、以下是安装文档。

    192.168.200.128

    1. FastDFS位置

    1. 配置Nat

    启动

    用户名/密码

    root/123456

    1. 测试是否启动成功

    http://192.168.200.128/group1/M00/00/01/wKjIgFWOYc6APpjAAAD-qk29i78248.jpg

    1. FastDFS的Java接口

    FastDFSUtils 工具类

    上传图片到分布式文件系统

    1. 分布式文件系统的配置文件如下

    fdfs_client.conf

    # connect timeout in seconds

    # default value is 30s

    connect_timeout=30

    # network timeout in seconds

    # default value is 30s

    network_timeout=60

    # the base path to store log files

    base_path=/home/fastdfs

    # tracker_server can ocur more than once, and tracker_server format is

    # "host:port", host can be hostname or ip address

    tracker_server=192.168.200.128:22122

    #tracker_server=192.168.101.4:22122

    #standard log level as syslog, case insensitive, value list:

    ### emerg for emergency

    ### alert

    ### crit for critical

    ### error

    ### warn for warning

    ### notice

    ### info

    ### debug

    log_level=info

    # if use connection pool

    # default value is false

    # since V4.05

    use_connection_pool = false

    # connections whose the idle time exceeds this time will be closed

    # unit: second

    # default value is 3600

    # since V4.05

    connection_pool_max_idle_time = 3600

    # if load FastDFS parameters from tracker server

    # since V4.05

    # default value is false

    load_fdfs_parameters_from_tracker=false

    # if use storage ID instead of IP address

    # same as tracker.conf

    # valid only when load_fdfs_parameters_from_tracker is false

    # default value is false

    # since V4.05

    use_storage_id = false

    # specify storage ids filename, can use relative or absolute path

    # same as tracker.conf

    # valid only when load_fdfs_parameters_from_tracker is false

    # since V4.05

    storage_ids_filename = storage_ids.conf

    #HTTP settings

    http.tracker_server_port=80

    #use "#include" directive to include HTTP other settiongs

    ##include http.conf 

    1. 上传图片到FastDFS的Java接口

    /**

    * 上传图片到FastDFS

    * @author lx

    *

    */

    public class FastDFSUtils {

        

        //上传

        public static String uploadPic(byte[] pic,String name,long size) throws Exception{

            //全局设置Tracker的IP

            ClassPathResource resource = new ClassPathResource("fdfs_client.conf");

            ClientGlobal.init(resource.getClassLoader().getResource("fdfs_client.conf").getPath());

            //连接Tracker

            TrackerClient trackerClient = new TrackerClient();

            //获取Stoage的地址

            TrackerServer trackerServer = trackerClient.getConnection();

            //连接Stoage的服务器

            StorageServer storageServer = null;

            StorageClient1 storageClient1 = new StorageClient1(trackerServer,storageServer);

            //上传图片到Stoage

            String ext = FilenameUtils.getExtension(name);

            NameValuePair[] meta_list = new NameValuePair[3];

            meta_list[0] = new NameValuePair("filename",name);

            meta_list[1] = new NameValuePair("fileext",ext);

            meta_list[2] = new NameValuePair("filesize",String.valueOf(size));

            // group1/M00/00/01/wKjIgFWOYc6APpjAAAD-qk29i78248.jpg

            String path = storageClient1.upload_file1(pic, ext, meta_list);

            //接收返回值(图片的路径)

            return path;

            

        }

    1. 保存图片到FastDFS分布式文件系统

    1. 创建UploadServiceImpl

    1. Dubbo配置

    服务提供方

    服务消费方

    1. 创建UploadController

    1. 修改页面(提交表单)

    1. 对字段

    由于<img src属性不能在提交表单时、将数据提交到Controller层、所以添加一行隐藏域

    来保存图片的路径、目地是提交表单时把此路径也提交到Controller中品牌对象中

    第一步:

    第二步:

    1. Dao

    1. Mapper

    1. Service

    修改品牌

    入参:Brand对象

    1. BrandController

    入参:Brand对象

    跳转视图:重定向

    1. 全选

    1. 删除(批量)

    1. Function

    1. Dao

    1. Mapper

    1. Service

    1. Controller

    接收的 Long【】 ids

    跳转视图:重定向

    1. 删除带条件

    页面按钮

    Function

    Controller

    1. 导入七张表及数据

    商品表四张 商品表 品牌表 颜色表 SKu表(库存表)

    用户表一张

    订单表二张

    广告表二张

    1. 商品表

    四张

    1. 逆向工程

    OOM

    Out of memery

    物理级分页

    1. 测试逆向工程

      1. 通过ID查询

    1. 通过条件复杂查询

    1. 商品管理之列表查询

    1. 点击商品管理进入商品列表页面 默认条件为下架状态
    2. 点击查询按钮刷新商品列表页面 条件为商品名称、品牌、上下架状态
    3. 点击分页页号进入商品列表页面 条件为商品名称、品牌、上下架状态、页号
    1. 商品管理按钮的路径设置

    在frame/product_left.jsp中

    /product/list.do

    1. 页面条件

    1. 页面结果集

    1. 页面分页

    1. ProductService 查询分页对象

    入参: 商品名称 、品牌ID 、是否上下架 当前页

    返回值:分页对象

    1. Dubbo配置

    1. ProductController 查询分页对象

    入参: 商品名称 、品牌、是否上下架 当前页

    返回值:分页对象

    跳转视图 product/list

          

  • 相关阅读:
    vue手机号正则表达式
    工作中linux常用命令速记!
    Mac os 升级到Catalina 之后的问题
    NX二次开发-UFUN获取某个部件或对象事例的父部件或对象事例(PartOcc)UF_ASSEM_ask_part_occurrence
    C#例子1(WinForm窗体开发)-带图形列表的系统登录程序
    NX二次开发-C#多线程技术做exe外部开发(批量导出PDF图纸例子)
    NX二次开发-C#使用DllImport调用libugui.dll里的内部函数自动将NX标题设置为prt路径例子(三部曲3)
    NX二次开发-C#使用DllImport调用libufun.dll里的UF函数学习方法及tag转handle例子(三部曲2)
    NX二次开发-C#创建XML和解析XML
    NX二次开发-C#使用DllImport调用libufun.dll里的UF函数(反编译.net.dll)调用loop等UF函数(三部曲1)
  • 原文地址:https://www.cnblogs.com/beyondcj/p/6277825.html
Copyright © 2020-2023  润新知