CGB2011_DAY01

1. 京淘项目架构设计

1.1 电商网站行业特点

1.1.1 高并发

概念:在同一时间内,有大量的用户访问服务器。
常识:Tomcat服务器能够支持的并发连接数220个/秒(软件依赖硬件设备),生产环境
升级:Tomcat调优设计,增加Tomcat运行内存,JVM调优,Tomcat可以支持1000个/秒。
危害:如果服务器处于高负载运行环境,极其容易产生宕机现象,用户响应不及时(主要矛盾),用户体验差(赔款、条款规定)。

1.1.2 分布式思想

  1. 分布式计算:将任务进行拆分,拆分为若干个计算单元,之后由不同的线程执行,再有特定的组件进行汇总(大数据)。
    例子:一个人(线程)完成一项任务需要10个小时,问10个人同时干活需要多久?(1个小时完成)
    分布式思想图
  2. 分布式系统
  • 说明:由于业务需要,将复杂的程序按照特定的规则进行拆分
  • 规则1:按照业务模块拆分。(例如:京东/前端/秒杀/商品/后端…)
  • 规则2:按照层级拆分。(pojo/Mapper(Dao)/Service/Controller/VO/页面)
  • 在架构设计的环节,实现了代码的松耦合。(解耦)提高网站的扩展性。

1.1.3 高可用性

概念:如果在服务器运行过程中发生了宕机的现象,则无需人为的干预

1.1.4 安全性

国内安全做的最好的:阿里巴巴(支付宝)、技术研发部:达摩院 安全部:神盾局(安全专家/黑客) 360安全卫士(最大xxruanjian )
阿里风控系统:动态监控交易是否安全。(指纹/刷脸)
网贷:
假设:某个人盗取了你的手机信息
1. 判断是否好友。
2. 判断你们之前是否有交易记录。
3. 登陆地点是否为常用地点。
4. 转账账户是否异常…
5. 是否重置过交易密码…
交易存在风险。第二天才可能受理。
优化2

2. 关于京淘表设计

2.1 常见表关系

实质:看问题的角度不同,得到的结果不同,一定要记住,站在一头考虑问题

2.1.1 一对一

例子1:用户表----用户详情表
分析:一个用户----一个详情
一个详情----一个用户

2.1.2 一对多

案例:用户和订单
分析:一个用户----多个订单
一个订单----一个用户

2.1.3 多对多

规则:多对多是双向的一对多
案例:用户----角色----权限
分析:一个用户----多个角色 1->多
一个角色----多个权限 1->多

2.1.4 京淘物理模型图设计

补充说明:
1. 表与表关联关系通过主外键进行关联。
2. 主键不能重复。
3. 外键如果不做特殊要求(唯一性约束)可以重复。
读表:
规则1:主键和外键
同一行中 一个主键对应一个外键 (一对一)
多行中 一个外键对应多个主键 (一对多)
多对多:多对多一般都会有中间表(三张表组成)

在这里插入图片描述

3. IDEA环境搭建

3.1 新建工作空间

3.2 利用IDEA打开新建空间

File----Open----选择上述文件目录即可
新建

3.3 修改IDEA 配置

3.3.1 安装lombok插件

在这里插入图片描述

3.3.2 修改键位

在这里插入图片描述

3.3.3 自动匹配大小写

在这里插入图片描述

3.3.4 设定自动编译

在这里插入图片描述

3.3.5 设定自动保存

在这里插入图片描述

3.4 maven

3.4.0 Maven说明

Maven 项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。

3.4.1 maven文件说明

注意事项:我们是专业的开发人员,所以要求软件路径不要有中文/空格/特殊字符/尽量不要放C盘。
在这里插入图片描述

3.4.2 Maven工作原理复习

部件:本地仓库 私服镜像 中央仓库
关于mavenjar包下载异常:
在这里插入图片描述

3.4.2 关于settings文件说明

  1. 本地仓库地址
    在这里插入图片描述
  2. 仓库位置
    在这里插入图片描述
  3. 私服镜像设定
    在这里插入图片描述
  4. jdk环境配置
 <profile>
   <id>jdk-1.8</id>
   <activation>
	<activeByDefault>true</activeByDefault>
      <jdk>1.8</jdk>
   </activation>
   <properties>
	   <maven.compiler.source>1.8</maven.compiler.source>
	   <maven.compiler.target>1.8</maven.compiler.target>
	   <maven.compiler.compilerVersion>
        1.8
       </maven.compiler.compilerVersion>
	 </properties>
   </profile>

在这里插入图片描述

3.4.3 创建maven项目

  1. 创建项目
    在这里插入图片描述
  2. 选择依赖项
    在这里插入图片描述

3.5 关于maven操作说明

3.5.1 关于坐标说明

说明:maven的坐标与本地仓库进行绑定,通过坐标查询本地仓库中的jar包文件之后进行项目的依赖。
异常信息:如果maven坐标报错,则可能是导入异常,需要检查版本信息及本地仓库中的jar包是否正确。

<!--maven的依赖项   添加jar包文件 导入该项目-->
		<dependency>
			<!--组ID:一般都是公司域名倒写   -->
			<groupId>org.springframework.boot</groupId>
			<!--项目名称-->
			<artifactId>spring-boot-starter-web</artifactId>
			<!--版本号-->
			<version>2.4.3</version>
		</dependency>

3.5.2 关于maven jar包传递性说明

说明:如果A.jar 依赖 B.jar, B.jar 依赖 C.jar,当程序添加A.jar包时,maven会自动的解析动态依赖 A/B/C三个包文件。

jar包查询网址:https://mvnrepository.com/

工作原理:
当maven添加jar包文件时,会通过依赖的坐标去本地仓库中查找对应的jar包文件,之后解析该文件下的POM.xml文件,如果该文件中有自己的依赖项,则重复执行上述操作,直到所有的依赖项全部加载完成为止。在这里插入图片描述
maven这么做的意义:主要解决了jar包依赖冲突问题。

3.5.3 Maven如何保证jar包传递的安全性

知识讲解:SHA1算法
SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。

知识补充:

  1. 如果对同一个数据进行hash(sha1)计算 问:结果是否相同?必然相同…
  2. 如果对不同的数据进行hash计算 问:hash结果是否不同? 不一定 HASH碰撞
  3. 如果对1M,1K的数据进行相同的hash计算,问:计算速度谁快?hash不会因为内容大小而影响速度
    工作原理:
    在这里插入图片描述

4 关于SpringBoot相关配置说明

4.1 关于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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<!--
		parent定义父级jar包文件  一般的父级的打包类型	jar包 java程序 /war包   web程序/POM 聚合工程
		SpringBoot需要依赖spring/springMVC等的相关jar包文件
		统一定义了当前SpringBoot版本的相关依赖jar包信息.该依赖信息可以被子项目继承
		注意事项: SpringBoot整合当前主流的框架jar包  某些特殊的项目需要自己单独整合
	-->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.4.3</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.jt</groupId>
	<artifactId>springboot_demo1</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>springboot_demo1</name>
	<description>Demo project for Spring Boot</description>
	<properties>
		<java.version>1.8</java.version>
	</properties>
	<dependencies>

		<!--maven的依赖项   添加jar包文件 导入该项目
			需要什么功能  单独依赖某些包即可.
		-->
		<dependency>
			<!--组ID:一般都是公司域名倒写   -->
			<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>
	</dependencies>


	<build>
		<!--插件信息-->
		<plugins>
			<!--负责maven相关操作 项目 编译/测试/打包等操作  如果没有回报没有主清单 -->
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

在这里插入图片描述

4.2 关于maven操作说明

  1. compile 利用maven工具将程序进行编译,将.java文件编译为.class文件。
  2. clean 删除target文件目录。
  3. install 将项目进行打包处理,target目录中保存 (个别同学没有该文件) / 本地仓库中保存。

4.3 关于项目发布测试

  1. 准备jar包文件
    在这里插入图片描述
  2. java项目发布
    在这里插入图片描述
    万能的关闭命令:ctrl + c

4.4 作业

掌握什么是开箱即用,了解springBoot程序执行过程…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值