京淘项目day04

1.京淘后台管理系统

1.1 Ajax总结

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>



您好Springboot








    

学生信息

编号 姓名 年龄 性别

1.2分布式思想

1.2.1 分布式分类

1.分布式计算
    说明:一项任务由多个服务器共同完成的.
    例子:假设一项任务单独完成需要10天,如果有10个人同时执行则一天完成. 大数据处理技术
2.分布式系统
    说明:将项目按照特定的功能模块及层级进行拆分.从而降低整个系统架构的耦合性问题.

1.2.2 传统项目存在的问题

总结:传统项目将所有的模块都写到了一起,如果其中一个模块出现了问题,则可能导致所有的服务不可用,用户的体验较差,并且架构设计耦合性高.
京淘项目day04_第1张图片

1.2.3 分布式系统拆分

核心:无论将来怎么拆分,都是同一个系统,口诀:对外统一,对内相互独立

1.2.3.1 按照模块拆分

由于单体架构中耦合性太高,所以采用了分布式思想,将项目按照模块进行拆分,使得各个模块之间互相不影响,提高了整体的扩展性
京淘项目day04_第2张图片

1.2.3.2 按照层级拆分

说明:由于某些项目功能实现起来比较复杂,需要多人协同合作,则需要将项目按照层级再次拆分.
京淘项目day04_第3张图片

1.2.4 分布式系统引发的问题

1.分布式系统jar包文件如何统一管理?
2.分布式系统中工具API如何统一管理?
京淘项目day04_第4张图片

2 京淘项目后端搭建

2.1 创建父级工程jt

打包方式:pom 表示该项目是一个聚合工程里边包含了很多小的项目,并且该项目可以统一管理公共的jar包文件.

2.1.1 新建项目

打包方式: pom 表示:该项目是一个聚合工程,里边包含了很多的小项目,并且该项目可以统一管理公共的jar包文件.
京淘项目day04_第5张图片

2.1.2 编辑POM.xml文件



    4.0.0
    com.jt
    jt2007
    1.0-SNAPSHOT
    
    pom

    
    
        org.springframework.boot
        spring-boot-starter-parent
        2.3.4.RELEASE
         
    

    
        1.8
        true
    

    
        
            org.springframework.boot
            spring-boot-starter-jdbc
        
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-devtools
            runtime
            true
        
        
            mysql
            mysql-connector-java
            runtime
        
        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
            
                
                    org.junit.vintage
                    junit-vintage-engine
                
            
        

        
        
            com.baomidou
            mybatis-plus-boot-starter
            3.2.0
        

        
        
        
            javax.servlet
            javax.servlet-api
        

        
        
            javax.servlet
            jstl
        

        
        
            org.apache.tomcat.embed
            tomcat-embed-jasper
        

        
        
            org.apache.httpcomponents
            httpclient
        

        
        

        
        

        
        
            org.springframework.boot
            spring-boot-starter-aop
        

        
        
            redis.clients
            jedis
        
        
            org.springframework.data
            spring-data-redis
        
    

    

2.2 编辑工具API jt-common

打包类型:jar

2.2.1 创建项目

京淘项目day04_第6张图片

2.2.2检查是否有父子级关系

京淘项目day04_第7张图片

2.2.3 导入课前资料

京淘项目day04_第8张图片

2.3 创建jt-manage项目

打包方式:war 注意IDEA的工作目录的配置

2.3.1 创建项目

京淘项目day04_第9张图片

2.3.2 编辑POM.xml文件



    4.0.0
    jt-manage
    
    war

    
    
        jt2007
        com.jt
        1.0-SNAPSHOT
    

    
    
        
            com.jt
            jt-common
            1.0-SNAPSHOT
        
    

    
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    


2.3.3 导入静态资源文件

说明:将课前资料中jt-manage中的src文件进行导入
京淘项目day04_第10张图片

2.3.4 修改启动项

京淘项目day04_第11张图片

2.4 关于SpringBoot默认页面访问说明

说明:SpringBoot项目中如果用户采用缺省值访问时,则SpringBoot会采用API进行页面跳转.如果使用模板工具API则会动态拼接视图解析器的前缀和后缀

eg:
    前缀: /WEB-INF/views
    后缀:.jsp
    默认系统欢迎页面的全路径: /WEB-INF/views/index.jsp

京淘项目day04_第12张图片

3. 京淘项目后台页面结构说明

3.1 京淘后端页面布局说明










   

京淘项目day04_第13张图片

3.2 树形结构

  • 商品管理
    • 商品查询
    • 商品新增
    • 今日价格
      • 猪肉: 10块/斤
      • 牛肉: 30块/斤
      • 羊肉: 24块/斤

京淘项目day04_第14张图片

4. 京淘后台实现(1)

4.1 通用页面跳转实现

package com.jt.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class IndexController {

    /*@RequestMapping("/index")
    public String index(){

        return "index";
    }*/

    /**
     * 需求:实现通用页面跳转
     *  url: /page/item-add    页面:item-add.jsp
     *  url: /page/item-list   页面:item-list.jsp
     * 结论: url中的地址就是跳转的页面信息.
     *
     * restFul风格实现1:
     *     作用: 可以动态的接收url中的参数
     *     语法:
     *          1.url中的地址如果是参数,则需要使用/分割
     *          2.controller方法接收参数时,需要使用{}号方式获取
     *          3.如果需要获取参数信息,则使用特定的注解标识
     *
     * restFul风格实现2: 需要指定访问的请求类型,并且根据特定的类型执行业务
     *      请求类型:
     *          1.get    执行查询操作
     *          2.post   执行入库操作
     *          3.put    执行更新操作
     *          4.delete 执行删除操作
     */
   //@RequestMapping(value = "/page/{moduleName}",method = RequestMethod.GET)
    @GetMapping("/page/{moduleName}")
    public String module(@PathVariable String moduleName){
        return moduleName;
    }
}

4.2 UI框架-表格数据展现说明

核心:JS中需要什么数据,则后端程序员就封装什么数据!!

4.2.0 常见缩写介绍

1.POJO与数据映射的实体类对象
2.VO:数据展现层的对象 主要与页面JS进行数据交互的媒介

4.2.1 EasyUI表格定义

定义表格,并且通过url访问json数据, fitColumns:true表示自动适应,singleSelect:true 表示选中单个
Code Name Price

4.2.2 表格数据返回格式说明

{
    "total":2000,
    "rows":[
        {"code":"A","name":"果汁","price":"20"},
        {"code":"B","name":"汉堡","price":"30"},
        {"code":"C","name":"鸡柳","price":"40"},
        {"code":"D","name":"可乐","price":"50"},
        {"code":"E","name":"薯条","price":"10"},
        {"code":"F","name":"麦旋风","price":"20"},
        {"code":"G","name":"套餐","price":"100"}
    ]
}

4.2.3 根据返回值 定义VO对象

京淘项目day04_第15张图片

4.3 JSON结构说明

4.3.1 什么是JSON

答:JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。

4.3.2 JSON格式之对象格式

对象(object) 是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。
京淘项目day04_第16张图片

eg: {"id":"100","name":"tomcat"}

4.3.2 JSON格式之数组格式

京淘项目day04_第17张图片

eg:["1","玩","学习"]

4.3.3 JSON格式之嵌套格式

京淘项目day04_第18张图片

eg:["郭桂强","杨宏杰",[1,2,3,4,5],{"id":100,"name":"罗彭","hobby":["吃东西","打游戏","睡觉"]}]

你可能感兴趣的:(java)