常用项目设计

1 常用项目设计框架

image.png
1.1 用户在访问服务器时因为并发量比较大,通常使用多台服务器来解决高访问的问题。而域名、端口等统一且唯一,用户不可能在输入网址时不断的修改,因此用统一的代理服务器作为唯一的入口,再进行分配。

1.2 数据库端同样为减少访问量,增添了缓存服务器。以及主从数据库,里面数据完全相同。一旦主机出现的故障,会根据特定算法自动切换到从机上。

2 项目表设计

2.1 表与表之间的关系

2.1.1 一对一

image.png
一个商品对应一个商品描述,一个商品描述对应一个商品。
通常将一个表中的主键充当另一个表中的外键。(pk--主键,fk--外键)

2.1.2 一对多

image.png
一个商品分类中对应多个商品,但一个商品却只属于一个商品分类。(当以某个对象为主体时,则以此对象为参考点。在以商品为参考点时,此时已经选中了这个商品,即有且只有一个,只对应一个商品分类。)

2.1.3 多对多

image.png
一个角色对应多个权限,一个权限对应多个角色。(多对多并不是指多个对象对多个对象,而是我们在选取这个对象时,这个对象已经被确定下来了,有且只有一个。这个‘多’表示其他对象与它的关系。)

2.2 导入数据库

导入指令; source 路径/xxx.sql
常用项目设计_第1张图片

2.3 IDEA配置环境

2.3.1 JDK配置

2.3.1.1 输入变量名,并找到对应的JDK安装根目录

常用项目设计_第2张图片

常用项目设计_第3张图片

3.3.1.2 在path上新建该变量

常用项目设计_第4张图片

3.3.1.3 检测JDK安装是否成功

输入指令:java -version
常用项目设计_第5张图片

2.3.2 IDEA常用配置

2.3.2.1 安装Lombok插件

image.png

2.3.2.2 设置习惯的快捷键

image.png

2.3.2.3 修改鼠标缩放

image.png

2.3.2.4 智能提示

image.png

2.3.2.5 构建项目

image.png

2.3.2.6 配置maven

常用项目设计_第6张图片

2.3.2.7 配置自动保存

image.png

2.3.2.8 修改自动提示

image.png

2.3.2.9 设置编码

常用项目设计_第7张图片

2.3.3 设置背景颜色

常用项目设计_第8张图片

3 SpringBoot高级应用

3.1 创建SpringBoot项目

常用项目设计_第9张图片

3.2 关于Maven说明

Maven是一站式的项目管理工具,可以创建项目、管理项目、项目打包、依赖、发布等。

3.2.1 关于Maven坐标的说明

Maven中有很多其他机构的开源jar包文件,通过坐标形式进行统一的管理。

        
            org.springframework.boot  公司域名倒写
            spring-boot-starter-web 项目名称
            XX  版本号
        

jar包位置:
C:\The_four_step\maven\rep\org\springframework\boot\spring-boot-starter-web\2.4.1
常用项目设计_第10张图片

3.3.2 关于maven中jar包依赖的传递性

在maven项目中如果A依赖B,B依赖C,当程序添加依赖A时,则同样也添加了B,C依赖文件。
常用项目设计_第11张图片

maven依赖的原理:
常用项目设计_第12张图片
1 当用户添加了jar包文件时,maven会根据jar包路径查询jar包文件
2 当加载完jar包后,会继续解析该目录下的自身带有的pom文件,如果pom文件中包含jar包时,就会继续加载。

3.3.3 maven工具如何实现jar包安全传递

当jar包完成下载时,本地库中的jar文件数据会进行散列算法,然后与中央仓库中的计算得出的散列值比较是否相等,以此来保证数据一致。

SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数
image.png
常识:
1.如果数据相同,问: hash值是否相同? 值是相同的.
2.问 一个数据10K,一个数据1G 问 运算速度如何? 一样快(约等于)

数据传递的流程:
常用项目设计_第13张图片

3.4 SpringBoot POM.xml文件

3.4.1 maven在idea中展示的名称

该名称默认为项目名。
image.png

3.4.2 maven打包方式

image.png
打包后,会出现一个打包的jar包文件,即是我们需要的打包文件;如果没有出现,刷新下。

3.4.3 jar包文件运行测试

命令:java -jar 打包文件(xxx.jar)
常用项目设计_第14张图片
测试的时候可以在文件目录下运行cmd
命令: ctr+c 表示退出

3.5 SpringBoot POM.xml文件-2

常用项目设计_第15张图片

3.6 SpringBoot启动流程

常用项目设计_第16张图片

3.6.1 元注解说明

此类注解为元注解,用来修饰注解的注解
@Target(ElementType.TYPE) 限定注解的作用范围(类里面有效)
@Retention(RetentionPolicy.RUNTIME) 注解的生命周期,表示在运行期有效
@Documented 应该被javadoc记录,动态生成文档信息
@Inherited 表示类、子类可以被继承

3.6.2 排除过滤器启动

@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
 @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
   /**
 * Exclude specific auto-configuration classes such that they will never be applied. * @return the classes to exclude
 */ @AliasFor(annotation = EnableAutoConfiguration.class)
   Class[] exclude() default {};...

因为spring boot启动时需要加载的很多,在这里通过过滤器排除哪些不需要加载的,即是需要加载的了。(eg:求一个集合时,可以对其求补集再取反)

3.6.3 SpringBootConfiguration中的注解

image.png

3.6.4 @EnableAutoConfiguaration

1 @AutoConfigurationPackage: 限定了spingBoot启动时包扫描的路径,只有在启动类的同包及其子包下才会被扫描到。
2 @Import(AutoConfigurationImportSelector.class)
该注解主要表示当程序启动时,springBoot内部会有多个选择器依次启动。选择器启动时会去加载指定的jar包文件。这时springBoot的开箱即用的作用才正式起作用。

你可能感兴趣的:(springboot,spring,java)