共计 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
- 京淘我的项目环境搭建
============
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 批改启动项