京淘项目Day03

京淘项目Day03

  1. SpringBoot整合动态web资源

=======================

1.1 创建web项目

1.1.1 创建项目

京淘项目Day03_第1张图片

1.1.2 添加jar包

`

    4.0.0
    com.jt
    springboot_demo3
    1.0-SNAPSHOT

    
        org.springframework.boot
        spring-boot-starter-parent
        2.4.2
         
    

    
        1.8
        true
    

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

        
        
            org.springframework.boot
            spring-boot-devtools
            runtime
            true
        

        
        
            org.projectlombok
            lombok
            true
        

        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        

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

        
        
            mysql
            mysql-connector-java
        

        
        
            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.springframework.boot
                spring-boot-maven-plugin
                
                    
                        
                            org.projectlombok
                            lombok
                        
                    
                
            
        
    
` 



1.1.3 编辑YML配置文件

`#配置tomcat服务器相关信息
server:
  port: 8090
  servlet:
    #项目发布路径 一般都是默认值/
    context-path: /

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/jtdb?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
    username: root
    password: root

  #配置视图解析器
  mvc:         #引入mvn配置
    view:
      prefix: /WEB-INF/     # /默认代表根目录 src/main/webapp
      suffix: .jsp

#整合MybatisPlus
mybatis-plus:
  #只要定义了别名包 之后的映射类型可以自动的完成拼接.
  type-aliases-package: com.jt.demo.pojo
  mapper-locations: classpath:/mybatis/mappers/*.xml
  #开启驼峰映射
  configuration:
    map-underscore-to-camel-case: true

#打印sql语句
logging:
  level:
    com.jt.demo.mapper: debug` 

1.1.4 编辑Controller方法

`package com.jt.demo.controller;

import com.jt.demo.pojo.User;
import com.jt.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

@Controller
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping("/findAll")
    @ResponseBody
    public List findAll(){

        return userService.findAll();
    }

    /**
     * 实现页面跳转
     * url:http://localhost:8090/userList  userList.jsp
     * 页面取值: ${userList}
     * 如何将数据赋值给域对象????
     */
    @RequestMapping("/userList")
    //@ResponseBody //1.将返回值结果转化为JSON  2.表示程序结束  3.不会执行视图解析器配置
    public String userList(Model model){

        List userList = userService.findAll();
        //利用model将数据保存到request域
        model.addAttribute("userList",userList);
        return "userList";
    }
}` 


1.1.5 页面跳转404异常说明

报错说明: 通过图上的报错信息 找不到具体的页面. 下列报错与代码无关,与IDEA的环境配置有关.
京淘项目Day03_第2张图片
2).编辑IDEA环境配置
京淘项目Day03_第3张图片

1.1.6 页面效果展现

京淘项目Day03_第4张图片

1.2 异步方式实现数据访问

1.2.1 ajax特点

特点: 局部刷新 异步访问
Ajax为什么可以实现异步?
京淘项目Day03_第5张图片

1.2.2 ajax业务说明

说明: 用户通过http://localhost:8090/ajaxUser 跳转到ajaxUserList.jsp页面中,其次通过ajax操作动态获取user集合数据,将数据在页面中进行展现.

核心:
1.跳转ajax发送请求的页面
2.编辑ajax发送请求获取结果,将数据在指定的位置展现.

1.2.3 跳转展现页面

 `/**
     * 跳转到ajax页面
     */
    @RequestMapping("ajaxUser")
    public String toAjax(){

        return "ajaxUserList";

    }` 


1.2.4 导入JS函数类库

1).js下载
京淘项目Day03_第6张图片
2).添加JS
京淘项目Day03_第7张图片
3).引用JS

`<%@ 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.5 页面效果展现

京淘项目Day03_第8张图片

  1. 京淘项目后台架构设计

==============

2.1 单体架构设计存在的问题

传统项目采用单体架构设计,虽然可以在一定的程度上解决企业问题,但是如果功能模块众多,并且将来需要二次开发.由于模块都是部署到同一台tomcat服务器中,如果其中某个模块代码出现了问题,将直接影响整个tomcat服务器运行.
这样的设计耦合性太高.不便于开发和维护.
京淘项目Day03_第9张图片

2.2 分布式思想(拆)

2.2.1 分布式计算

说明: 如果某个业务需要处理1000G的数据 如果通过一个线程.该工作几乎不可能完成…
优化方式: 同时开启多个线程 一起执行任务的计算. 理论上来说运行的速度大幅度提升.
难点: 数据如何拆分/数据如何合并
计算方式: 大数据应用.

2.2.2 分布式系统

说明: 分布式系统指按照某种规则,将项目按照规则进行拆分.从架构上降低了系统的耦合性.提高软件的扩展性.

2.2.2.1 按照模块拆分

说明:按照特定的业务规则,将项目进行拆分.
京淘项目Day03_第10张图片

2.2.2.2 按照层级拆分

说明: 由于某个项目比较复杂.需要多个开发人员相互配合.这时为了提高开发的效率.采用层级拆分的方式进行.
京淘项目Day03_第11张图片

2.2.3 分布式系统设计问题说明

铺垫: maven项目打包方式: 1.jar包(默认值) 2.war包 3.pom(聚合工程)
1).由于项目众多 如何统一的管理?
答案: 采用聚合工程的方式统一管理项目 打包方式 POM

2).项目多了之后,如何保证jar包版本的稳定?
答案: 采用统一的方式管理jar包文件 通过父级工程定义父级jar包.之后子级项目继承父级即可.

3).工具API如何做到统一的管理?
答案: 定义核心工具API工程. 架构师/高级程序员统一维护API项目. 之后API项目被其他的项目进行依赖.
京淘项目Day03_第12张图片

3 京淘项目后台架构搭建

3.1 创建父级工程

3.1.1 创建父级工程JT

京淘项目Day03_第13张图片

3.1.2 编辑jt pom.xml文件

`

    4.0.0
    com.jt
    jt
    1.0-SNAPSHOT
    
    pom

    
    
        org.springframework.boot
        spring-boot-starter-parent
        2.4.2
         
    

    
        1.8
        true
    

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

        
        
            org.springframework.boot
            spring-boot-devtools
            runtime
            true
        

        
        
            org.projectlombok
            lombok
            true
        

        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        

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

        
        
            mysql
            mysql-connector-java
        

        
        
            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
        
    

    
` 



3.2 创建jt-common

3.2.1 创建项目

京淘项目Day03_第14张图片

3.2.2 导入静态资源

京淘项目Day03_第15张图片

3.2.3 编辑父级POJO对象

京淘项目Day03_第16张图片

3.2.4 编辑Item对象

京淘项目Day03_第17张图片

3.3 jt-manage搭建

3.3.1 创建项目

京淘项目Day03_第18张图片

3.3.2 编辑pom.xml文件

`


    4.0.0
    jt-manage
    
    war

    
    
        jt
        com.jt
        1.0-SNAPSHOT
    

    
        
            com.jt
            jt-common
            1.0-SNAPSHOT
        
    

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


` 



3.3.3 关于父子级关系说明

说明: 如果搭建了父级工程 则可以通过父级检查所有的关联项目
京淘项目Day03_第19张图片

3.3.4 导入资源文件

说明: 将课前资料中的文件jt-manage中的src文件信息 导入项目中即可.
京淘项目Day03_第20张图片

3.3.5 修改YML配置信息

修改数据源配置信息
京淘项目Day03_第21张图片

3.3.6 配置工作目录

京淘项目Day03_第22张图片

3.3.7 后端启动测试

京淘项目Day03_第23张图片

3.4 关于系统首页跳转说明

3.4.1 业务说明

通过http://localhost:8091访问服务器时,会动态的跳转到系统的欢迎页面.
京淘项目Day03_第24张图片
实现原理: 说明程序启动时会自动的加载一个默认的请求路径(url:http://localhost:8091/) index 之后动态的拼接前缀和后缀. /WEB-INF/views/index.jsp
京淘项目Day03_第25张图片
京淘项目Day03_第26张图片

4 复习

1.了解JSON格式有几种
2.编辑一个你认为复杂的json格式 要求至少嵌套4层!!!

你可能感兴趣的:(java)