1.SpringBoot整合web资源

1.1 创立动静web资源


1.2 我的项目构造


1.3 增加资源/jar包

1).增加资源

2).增加jar包文件

 `<!--springBoot整合JSP增加依赖  -->        <!--servlet依赖 -->        <dependency>            <groupId>javax.servlet</groupId>            <artifactId>javax.servlet-api</artifactId>        </dependency>        <!--jstl依赖 -->        <dependency>            <groupId>javax.servlet</groupId>            <artifactId>jstl</artifactId>        </dependency>        <!--使jsp页面失效 -->        <dependency>            <groupId>org.apache.tomcat.embed</groupId>            <artifactId>tomcat-embed-jasper</artifactId>        </dependency>` *   1*   2*   3*   4*   5*   6*   7*   8*   9*   10*   11*   12*   13*   14*   15*   16*   17*   18

1.4 增加YML配置文件

`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# Spring整合Mybatis-plus配置mybatis-plus:  type-aliases-package: com.jt.pojo  mapper-locations: classpath:/mybatis/mappers/*.xml  #开启驼峰映射  configuration:    map-underscore-to-camel-case: true# 打印Mybatissql语句logging:  level:    com.jt.mapper: debug` *   1*   2*   3*   4*   5*   6*   7*   8*   9*   10*   11*   12*   13*   14*   15*   16*   17*   18*   19*   20*   21*   22*   23*   24*   25*   26*   27*   28*   29*   30*   31

1.5 入门案例

1.5.1 业务需要

需要: 用户通过http://localhost:8090/findAll 获取全副userList汇合,并且在userList.jsp页面中进行表格数据展示

1.5.2 动静web资源404报错阐明

阐明:IDEA默认条件下工作目录抉择不正确的,须要手动配置一下,留神工作目录编辑


1.5.2 编辑UserController

第三阶段: pojo–>Mapper----->Service------>Controller------->页面及JS 自下而上的开发方式
第四阶段 pojo—>Controller—>Service----->Mapper 自上而下的开发方式

`package com.jt.controller;import com.jt.pojo.User;import com.jt.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.RestController;import org.springframework.web.servlet.ModelAndView;import java.util.List;@Controllerpublic class UserController {    @Autowired    private UserService userService;    @RequestMapping("/findAll")    public String findAll(Model model){        List<User> userList = userService.findAll();        model.addAttribute("userList", userList);        return "userList";    }}` *   1*   2*   3*   4*   5*   6*   7*   8*   9*   10*   11*   12*   13*   14*   15*   16*   17*   18*   19*   20*   21*   22*   23*   24*   25*   26*   27

1.5.3 编辑UserService

`package com.jt.service;import com.jt.mapper.UserMapper;import com.jt.pojo.User;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;@Servicepublic class UserServiceImpl implements UserService{    @Autowired    private UserMapper userMapper;    @Override    public List<User> findAll() {        return userMapper.selectList(null);    }}` *   1*   2*   3*   4*   5*   6*   7*   8*   9*   10*   11*   12*   13*   14*   15*   16*   17*   18*   19*   20*   21*   22*   23

1.5.4 页面成果展示

1.6 异步实现业务调用

1.6.1 Ajax为什么能够异步呢? 工作原理是阐明

阐明:
1).Ajax两头有ajax引擎的参加.ajax引擎本质就是一种代理的思维
2).因为须要实现异步的操作,所以申请必然是屡次申请.屡次响应.

1.6.2 导入jQuery.JS

1.6.3 Ajax申请流程

如果须要发动Ajax申请时,个别须要发动2个申请.
1个是用来跳转页面的 http://localhost:8090/toAjax
1个是用来申请数据的 http://localhost:8090/findAjax

1.6.4 编辑页面

`<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><title>您好Springboot</title><!-- 引入函数类库 --><script src="../js/jquery-3.4.1.min.js"></script><script type="text/javascript">        //1.让页面全副加载实现  函数式编程    $(function(){            //1.$.get(url地址,传递的参数,回调函数,返回值类型)     //$.post()   $.getJSON  $.ajax    $.ajax({        url:    "/findAjax",    //url地址        method: "get",            //申请类型        data: {id:1,name:"tomcat"},  //申请参数        success: function(data){            for(let user of data){                //console.log(user);                let id = user.id;                let name = user.name;                let age = user.age;                let sex = user.sex;                let tr = "<tr align='center'><td>"+id+"</td><td>"+name+"</td><td>"+age+"</td><td>"+sex+"</td></tr>"                $("#table1").append(tr);            }        },        error:   function(data){            alert("申请失败");        },        cache:   true,        //默认条件下缓存是开启的  false        async:     true        //默认就是异步    })                            //对于参数写法  2种         //1.JSON格局{id:1,name:"tomcat"}         //2.字符串拼接 id=1&name="tomcat"        $.get("/findAjax3333333333333",{id:1},function(data){            //循环遍历形式3  of            for(let user of data){                //console.log(user);                let id = user.id;                let name = user.name;                let age = user.age;                let sex = user.sex;                let tr = "<tr align='center'><td>"+id+"</td><td>"+name+"</td><td>"+age+"</td><td>"+sex+"</td></tr>"                $("#table1").append(tr);            }                        //循环遍历形式2  in            /* for(let index in data){                let user = data[index];                console.log(user);            } */                        //console.log(data);            //循环遍历形式1            /* for(let i=0;i<data.length;i++){                let user = data[i];                let id = user.id;                let name = user.name;                console.log(id+":"+name);            } */        })    })            </script></head><body>    <table id="table1"  border="1px" width="65%" align="center">        <tr>            <td colspan="6" align="center"><h3>学生信息</h3></td>        </tr>        <tr>            <th>编号</th>            <th>姓名</th>            <th>年龄</th>            <th>性别</th>        </tr>    </table></body></html>` *   1*   2*   3*   4*   5*   6*   7*   8*   9*   10*   11*   12*   13*   14*   15*   16*   17*   18*   19*   20*   21*   22*   23*   24*   25*   26*   27*   28*   29*   30*   31*   32*   33*   34*   35*   36*   37*   38*   39*   40*   41*   42*   43*   44*   45*   46*   47*   48*   49*   50*   51*   52*   53*   54*   55*   56*   57*   58*   59*   60*   61*   62*   63*   64*   65*   66*   67*   68*   69*   70*   71*   72*   73*   74*   75*   76*   77*   78*   79*   80*   81*   82*   83*   84*   85*   86*   87*   88*   89

1.6.5 编辑UserController

 `/**     * 跳转到ajax.jsp页面中     */    @RequestMapping("toAjax")    public String toAjax(){        return "ajax";    }    /**     * 接管ajax申请: /findAjax     * 返回值:  List<User>     */    @RequestMapping("/findAjax")    @ResponseBody //1.将返回值后果转化为JSON数据返回   2.代表ajax申请完结    public List<User> findAjax(){        return userService.findAll();    }` *   1*   2*   3*   4*   5*   6*   7*   8*   9*   10*   11*   12*   13*   14*   15*   16*   17*   18
  1. 京淘我的项目环境搭建

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

2.1 分布式阐明

2.1.1 传统我的项目中存在的问题

阐明: 单体我的项目架构将所有的功能模块都写到一起,如果其中呈现了问题则间接影响整个程序的容许.

2.1.2 分布式架构(拆)

1).能够依照功能模块能够将我的项目拆分为若干个子项目
2).如果业务性能足够简单,则须要更加细粒度的拆分形式.
拆分的意义: 应用分布式架构设计,能够无效的升高架构中的耦合性,进步程序的开发速度及运维速度.

2.1.3 分布式思维存在的问题

问题1: 分布式架构中如何保障jar包文件的对立?
问题2: 分布式架构中如何保障工具API的对立?

3京淘后盾我的项目创立

3.1 创立父级工程

3.1.1 创立目录

3.1.2 批改POM.xml文件

`<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <groupId>com.jt</groupId>    <artifactId>jt</artifactId>    <version>1.0-SNAPSHOT</version>    <!--打包类型为POM 只有pom能力被其余我的项目继承-->    <packaging>pom</packaging>    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>2.4.0</version>        <relativePath/> <!-- lookup parent from repository -->    </parent>    <properties>        <!--指定JDK版本-->        <java.version>1.8</java.version>        <!--跳过测试类打包-->        <skipTests>true</skipTests>    </properties>    <!--依赖的作用:依赖须要的jar包文件  -->    <dependencies>        <dependency>            <groupId>org.springframework.boot</groupId>            <!--spring-boot-starter-xxx springboot启动项            开箱即用:             只须要引入特定的jar包简略的配置,即能够应用该性能             -->            <artifactId>spring-boot-starter-web</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope>        </dependency>        <!--反对热部署 -->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-devtools</artifactId>        </dependency>        <!--引入插件lombok 主动的set/get/构造方法插件  -->        <dependency>            <groupId>org.projectlombok</groupId>            <artifactId>lombok</artifactId>        </dependency>        <!--增加数据库驱动包-->        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>        </dependency>        <!--springBoot整合jdbc-->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-jdbc</artifactId>        </dependency>        <!--SpringBoot整合MybatisPlus  mybatis和plus jar包抵触的-->        <dependency>            <groupId>com.baomidou</groupId>            <artifactId>mybatis-plus-boot-starter</artifactId>            <version>3.2.0</version>        </dependency>        <!--springBoot整合JSP增加依赖  -->        <!--servlet依赖 -->        <dependency>            <groupId>javax.servlet</groupId>            <artifactId>javax.servlet-api</artifactId>        </dependency>        <!--jstl依赖 -->        <dependency>            <groupId>javax.servlet</groupId>            <artifactId>jstl</artifactId>        </dependency>        <!--使jsp页面失效 -->        <dependency>            <groupId>org.apache.tomcat.embed</groupId>            <artifactId>tomcat-embed-jasper</artifactId>        </dependency>    </dependencies>    <!--不要增加build标签 --></project>` *   1*   2*   3*   4*   5*   6*   7*   8*   9*   10*   11*   12*   13*   14*   15*   16*   17*   18*   19*   20*   21*   22*   23*   24*   25*   26*   27*   28*   29*   30*   31*   32*   33*   34*   35*   36*   37*   38*   39*   40*   41*   42*   43*   44*   45*   46*   47*   48*   49*   50*   51*   52*   53*   54*   55*   56*   57*   58*   59*   60*   61*   62*   63*   64*   65*   66*   67*   68*   69*   70*   71*   72*   73*   74*   75*   76*   77*   78*   79*   80*   81*   82*   83*   84*   85*   86*   87*   88*   89*   90*   91*   92*   93*   94*   95

3.2 创立工具API我的项目

3.2.1 创立本人工程

3.2.2 导入工具API

3.3 创立JT-MANAGE我的项目

3.3.1 创立我的项目

3.3.2 增加依赖

`<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <parent>        <artifactId>jt</artifactId>        <groupId>com.jt</groupId>        <version>1.0-SNAPSHOT</version>    </parent>    <modelVersion>4.0.0</modelVersion>    <artifactId>jt-manage</artifactId>    <!--动静web资源 临时应用war包-->    <packaging>war</packaging>    <!--增加jar包文件依赖-->    <dependencies>        <dependency>            <groupId>com.jt</groupId>            <artifactId>jt-common</artifactId>            <version>1.0-SNAPSHOT</version>        </dependency>    </dependencies>    <!--所有业务零碎,必须增加build标签-->    <build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>            </plugin>        </plugins>    </build></project>` *   1*   2*   3*   4*   5*   6*   7*   8*   9*   10*   11*   12*   13*   14*   15*   16*   17*   18*   19*   20*   21*   22*   23*   24*   25*   26*   27*   28*   29*   30*   31*   32*   33*   34*   35*   36*   37

3.3.3 导入动态资源文件

阐明:将课前材料中的jt-manage我的项目的src文件导入. 导入后果,如图所示

3.3.4 批改代码

阐明:去除没有必要的代码

3.3.5 批改启动项