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包文件. 如果选择器匹配则开始运行实例化对象,如果不匹配则跳过该选择器,执行下一个.
至此整个开箱即用的准则实现.