# 1.京淘项目说明
## 1.1知识点概述
1).SpringBoot框架使用(SpringMvc,spring.mybatis/mybstisPlus)自己完成代码
3).学习企业中不同项目之间如何进行交互,AJAX/跨域思想/HttpClien业务调用/Dubbo微服务框架
4).真实完成项目实践,将自己的项目部署到服务器中(Linux)通过域名直接访问
5).概念(什么是什么?)||重点理解核心的代码(编程思维-自己思考问题的思路)
## 1.2京涛架构的设计
常识:
1.tomacat服务器并发能力 没有调优 150-220次/秒 大约200次/秒
JVM调优 1000次/秒
2.mysql数据库能够支持的最大的并发**链接数**:1000 (一秒之内可能做多次操作)
## 1.3关于数据库表的设计
设计原则:考虑问题时,一定要一头考虑,常用的关联关系 主外键关联
主外键设计原则:我自己的主键可以充当别人的外键
核心知识:主键不能重复,外键可以重复.
## #1.3.1一对一
业务场景:用户表(User)与用户详情表(User_info)
表关系: 一个用户对应一个用户详情 一对一
一个用户详情对应一个用户 一对一 (典型的一对一)
1.3.2一对多
业务场景:员工和门
表分析:一个员工对应一个部门
一个部门对应多员工
3.SpringBoot相关的说明
parent标签的作用
<!--
springboot官方将自身所拥有的jar包的文件进行了统一的管理定义(冲突问题最大程度是得到了解决)
防止内部jar包得文件冲突
-->
在之前旧项目中需要手动导入jar包文件,并且额外注意jar包得版本问题,以防版本重复,但凡
关于依赖项的说明
<dependencies>
<!--按照需要的jar包进行依赖,但是不需要指定版本号,
因为父级项目中进行了统一的定义
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<scope>test</scope>
</dependency>
</dependencies>
关于maven插件的说明
1.项目发布命令
关于jdk说明
找到自己jdk的目录
简述springBoot启动流程
考点:对于springboot程序的开箱即用的原则是否理解..
知识点说明
开箱即用:只需要导入简单的jar文件,就可以实现对应的功能无需(少量)繁琐的配置
<dependency>
<groupId>org.springframework.boot</groupId>
<!--spring-boot-start启动项 springboot官网已经完成了基础设置,无需再次配置-->
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
1. SpringBoot高级用法
1.1 跳过测试类打包
1.1.1业务场景说明
通常将项目进行打包时,不需要执行里面的测试方法,因为测试方法只会
1.1.2 跳过测试类打包
说明:告知maven程序,在进行打包操作时
<properties>
<java.version>1.8</java.version>
<!--通过测试类打包-->
<skipTests>true</skipTests>
</properties>
1.2.2propertis说明
注意事项:
1.pro配置文件的格式key=value
2.配置文件中无需添加多于的"号"
3.写value是注意多余的空格...
4.springboot程序在解析propertis
1.2.3yml配置文件
1.3 为属性赋值
1.3.1编辑YML配置文件
1.3.2 编辑YML配置文件
1.4利用properties为属性赋值
1.4.1 业务说明
如果将程序中所有的业务数据都保存到YML配置文件中,则显得很臃肿,
不方便日后管理.所以将业务数据应该保存到指定的properties文件中.
1.4.2 编辑properties
user.id=100
#user.name猫 该名称特殊 动态获取计算机的名称
user.username=tomcat猫
1.4.3 编辑userController
@RestController
//程序运行时加载指定的配置文件
@PropertySource(value = "classpath:/properties/user.properties",encoding = "UTF-8")
public class UserController {
/*
利用properties方式为属性赋值
*/
@Value("${user.id}")
private Integer id;
@Value("${user.username}")
private String name;
@RequestMapping("/getMsg")
public String getMsg(){
return id+":"+name;
}
}
1.4.4 页面效果展示
1.5 springBoot环境切换
1.5.1 业务说明
说明;软件开发是的环境称之为开发环境,软件测试的环境称之为测试环境,由于环境不一致可能会频繁的
修改其中的配置,如果配置文件比较繁琐修改会给程序带来不便
想法:能否有一种机制,只需要修改环境名称就可以自动实现内部环境的切换
1.5.2 YML环境配置
# 语法: 1.数据结构 key:(空格)value
# 2.key与key之间有层级缩进的效果 特别注意
# 3.YML文件默认才用UTF-8格式,所以中文不乱码
#配置默认的环境名称
spring:
profiles:
active: test
---
spring:
config:
activate:
on-profile: test
redis:
host: 10.3.5.16
port: 7000
#1.环境的分割符(---)
---
#2.定义环境的名称
spring:
config:
activate:
on-profile: prod
redis:
host: 162.168.1.1
port: 6379
1.6 热部署插件
1.6.1 添加jar包
<!--支持热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
1.6.2 配置IDEA环境
组合键:ctrl+Alt+Shift+/ 选中第一个Registry
1.7 添加lombok插件
1.7.1添加jar包
<!--添加lombok包-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
添加依赖快捷键:Alt+insert 选中第一个
ok
1.7.2 编辑pojo
package com.jt.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
@Accessors(chain = true)//链式加载
@AllArgsConstructor
@NoArgsConstructor
@Data//动态添加get/set/toString/equals/hash方法
public class User {
private Integer id;
private String name;
private Integer age;
private String sex;
// //链式加载原理 重构set方法
//
// public User setId(Integer id) {
// this.id = id;
// return this;
// }
// public User setName(String name) {
// this.name = name;
// return this;
// }
}
1.7.3关于lombok面试题
由于lombok需要安装插件,否则程序无法正常使用,如果在生产环境下 问Linux系统中是否需要提前安装lombok?? ---------不需要
原因:lombok插件在程序编译时期有效 由.java文件编译为.class文件是有效
Linux系统中的运行时xxx.jar包文件内部都是.class文件.
如果@Autowrid注解上注入依赖报错但是程序能够正常运行将其报错的修改为警告
3.mybatisPlus学习
3.1mybatisPlus介绍
3.2MybatisPlus特性
3.3ORM(对象关系映射)思想
3.4mybatisPuls工作原理
1).对象(属性)与数据库中的表(字段)---映射.利用注解实现映射@TableName("user")
2).将公共的CRUD接口的方法进行抽取,采用父级的方式进行定义,如果需要子级只需继承即可
3).由于用户操作的是对象,但是数据库只能识别sql语句,所以需要将对象按照特定规则转化为sql
如何转化:
1).userMapper.insert(user);
Sql:insert into user(id,name,age,sex) values(id,name,age,sex)
将封装好的sql交给mybatis执行
3.5MybatisPlus入门案例
3.5.1导入jar包
<!-- 添加mybatisPlus包 里面已经包含了mybatis了 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
3.6 MP API介绍