关于java:京淘003

38次阅读

共计 8859 个字符,预计需要花费 23 分钟才能阅读完成。

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;

@Controller
public 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;

@Service
public 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 批改启动项

正文完
 0