共计 4394 个字符,预计需要花费 11 分钟才能阅读完成。
cgb2010- 京淘我的项目 Day01
1. 京淘我的项目阐明
1.1 知识点概述
1). SpringBoot 框架应用 (SpringMVC,Spring,Mybatis/MybatisPlus) 本人入手实现代码
2). 京淘我的项目的架构设计思维 如何让零碎 稳固 的运行!!! 软件不行, 硬件补
3). 学习企业中不同我的项目之间如何进行交互. AJAX/ 跨域思维 /HttpClient 业务调用 /Dubbo
4). 实现我的项目企业实际 将本人的我的项目 部署到服务器中(Linux) 通过域名间接拜访
5). 概念(什么是什么???)| 重点了解外围代码(编程思维 - 本人思考问题的思路)| 代码能够不写 业务思路必须精确理解.(面试必备技能)
1.2 京淘架构设计
常识:
1).tomcat 服务器并发能力 没有调优 150-220 次 / 秒 大概 200 次 / 秒
JVM 调优: 1000 次 / 秒
2).Mysql 数据库可能反对的最大的并发 链接数: 1000 (一秒之内可能做屡次操作)
1.2 PD 软件
1.2.1 PD 介绍
PowerDesigner 最后由 Xiao-Yun Wang(王晓昀)在 SDP Technologies 公司开发实现。PowerDesigner 是 Sybase 的企业建模和设计解决方案,采纳模型驱动办法,将业务与 IT 联合起来,可帮忙部署无效的企业体系架构,并为研发生命周期治理提供弱小的剖析与设计技术 。PowerDesigner 步人后尘地将 多种规范数据建模技术(UML、业务流程建模以及市场当先的数据建模)集成一体,并与 .NET、WorkSpace、PowerBuilder、Java™、Eclipse 等支流开发平台集成起来,从而为传统的软件开发周期治理提供业务剖析和标准的数据库设计解决方案。此外,它反对 60 多种关系数据库管理系统(RDBMS)/ 版本。PowerDesigner 运行在 Microsoft Windows 平台上,并提供了 Eclipse 插件。
1.2.2 装置 PD
1). 双击运行装置
抉择地址: (PRC) 之后一路下一步装置即可.
2). 破解软件
3). 抉择数据库模式
之后抉择 mysql 5.0 数据库即可
4). 对于面板工具阐明
1.3 对于数据库表设计
设计准则: 思考问题时,肯定要站在一头思考 . 罕用的关联关系 主外键关联
主外键设计准则: 我本人的主键能够充当他人的外键!!!
外围常识: 主键不能反复的, 外键能够反复.
1.3.1 一对一
业务场景: 用户 (user) 表与用户详情表 (user_info)
表关系: 一个用户对应一个用户详情 一对一
一个详情对应一个用户 一对一 (典型一对一)
1.3.2 一对多
业务场景: 员工和部门
表剖析: 1 个员工对应 1 个部门.
1 个部门对应多个员工.
1.3.3 多对多
业务场景: 角色和权限
剖析: 1 个角色对应多个权限.
1 个权限对应多个角色
1.4 京淘项目表设计
1.5 导入数据库
1). 链接数据库
2). 导入数据库
2 京淘我的项目环境搭建
2.1 IDEA 环境配置
2.1.1 装置插件
装置 lombok 插件
2.1.2 管制字母缩放
2.1.3 编辑字母配置
2.1.4 主动编译
2.1.5 设定主动保留
2.1.6 maven 配置
1). 配置 maven
2). 私服镜像地址
`<mirror>
<id>aliyun</id>
<name>aliyun for maven</name>
<mirrorOf>*</mirrorOf>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>`
*
2.1.7 批改 IDEA 字符集编码格局
2.1.8 对于社区版 (免费版) 装置 spring 插件
2.2 SpringBoot 入门案例
2.2.1 创立我的项目
2.2.2 增加 jar 包依赖
2.3 对于 Maven jar 包管理机制
2.3.1 maven 作用
**Maven 我的项目对象模型(POM),能够通过一小段形容信息来治理我的项目的构建,报告和文档的项目管理工具软件。
Maven 是一站式的我的项目的管理软件 次要的性能: 我的项目的创立 /jar 包治理 / 我的项目打包 / 公布 / 部署等性能.**
2.3.2 maven 命令阐明
java 编译过程: .java 文件 ———.class 文件 ——- 打包 —-(.class 文件的汇合) xxx.jar
1).clean 清空 maven 中的 target 目录…
2).compile 通过命令 maven 将.java 文件转化为.class 文件
3).install 将我的项目打包部署 将我的项目动静的在 target 和本地仓库中进行存储.
2.3.3 我的项目坐标和 jar 包的关系
常识补充: 地方仓库中如何治理 jar 包? 通过 maven 坐标进行无效的治理
坐标形成因素: 1. 公司域名倒写. 2. 项目名称 3. 我的项目版本号. 惟一确定一个我的项目
坐标与本地仓库关系:
1. 第三方 jar 包 个别通过坐标在本地路中进行 jar 包文件的依赖. 如果下载失败, 则须要手动删除之后, 更新 maven 从新下载.
2. 本人的 jar 包 当我的项目打包时会在指定的地位生成.jar 包文件.
能够将程序打包之后被其余我的项目进行依赖, 扩大性能.
2.3.4 maven 中 jar 包依赖的传递性的原理
阐明: 在 Maven 中 如果 A —– 依赖 —–B, B 依赖 —–C. 当在 pom.xml 文件中增加 Ajar 包时 B/ C 都会主动的增加依赖. 将这种景象称之为叫做 maven jar 依赖的传递性.
1).jar 包传递性的案例:
2). 如何实现的?
我的项目通过依赖项进行 jar 包文件加载时, 依据 maven 规定, 会去本地库中查找该 jar 包文件. 之后解析该 jar 包文件的 .pom. 文件 如果该文件中有依赖项, 则反复执行上述的过程. 直到依赖实现为止完结.
2.3.5 如何保障 jar 包文件安全性???
2.3.5.1 SHA1 算法阐明
SHA-1(英语:Secure Hash Algorithm 1,中文名:平安散列算法 1)是一种明码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)公布为联邦数据处理规范(FIPS)。SHA- 1 能够生成一个被称为音讯摘要的 160 位(20 字节)散列值,散列值通常的出现模式为 40 个十六进制数。
一个字节 8 个 bit(0|1)
2.3.5.2 音讯摘要阐明
小常识: 40 位 16 进制数反复的概率是多少?? (24)40=2^160
3 SpringBoot 相干阐明
3.1 POM.xml 文件阐明
3.1.1 历史遗留问题
在之前旧我的项目中, 须要手动的 jar 包文件. 并且分外的留神 jar 包版本问题. 以防版本反复. 凡是波及到 jar 包的降级, 或多或者都会有版本问题.
3.1.2 parent 标签的作用
`<!--
springboot 官网将本身所有用到的 jar 包的文件进行了对立的治理定义(抵触问题最大水平上进行解决)
避免外部 jar 包文件抵触.
-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.2</version>
<relativePath/>
</parent>`
*
3.1.3 对于依赖项阐明
`<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>
</dependencies>`
*
3.1.4 对于 maven 插件阐明
1). 我的项目发布命令 java -jar xxxx.jar
阐明: 如果我的项目公布之后鼠标左键点击 dos 命令窗口可能阻塞以后程序, 通过 ctrl+ c 勾销阻塞.
2). 当我的项目中短少 build 标签时, 打包之后, 会短少主启动的办法. 如图所示
3.2 对于 JDK 阐明
3.2 简述 SpringBoot 启动流程
考点: 你对于 springBoot 程序的 开箱即用 的准则是否了解…
知识点阐明:
开箱即用: 只须要导入简略的 jar 包文件, 就能够实现对应的性能, 无需 (大量) 繁琐的配置.
3.2.1 对于 @SpringBootApplication 阐明
3.2.1.1 对于元注解阐明
@Target(ElementType.TYPE) 标识以后注解对谁无效 对类无效
@Retention(RetentionPolicy.RUNTIME) 注解什么时候失效 运行期无效.
@Documented 是否动静的生成文档信息.
@Inherited 该注解能够被继承
3.2.1.2 @ComponentScan 阐明
阐明: 通过该注解能够指定哪些包中的对象交给 spring 容器治理.
`@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })`
*
代码阐明:
springBoot 程序在外部须要加载很多的依赖 jar 包文件. 然而有个别的 jar 包文件引入之后会对其余的文件产生烦扰. 所以在启动之初将其排除在外…
3.2.1.3 @SpringBootConfiguration 阐明
该注解也是一个配置类 | 配置文件.
该注解标识了主启动类, 阐明主启动类也是一个配置类.
作用: 当程序启动时会将代码中的配置类进行加载(大配置文件蕴含小的配置文件)
3.2.1.4 @EnableAutoConfiguration
1).@AutoConfigurationPackage 主动配置的包扫描 动静获取以后主启动类的包门路…
注意事项: 当前写代码的时候, 切记肯定要在主启动类的同包及子包中编辑.
2).@Import(AutoConfigurationImportSelector.class)
阐明:springBoot 程序中有多个选择器, 在程序启动时,springBOot 会调用选择器去加载 pom.xml 文件中的启动项 (springbooot-start-xxxxx) 等 jar 包文件. 如果选择器匹配则开始运行实例化对象, 如果不匹配则跳过该选择器, 执行下一个.
至此整个开箱即用的准则实现.