【Java】常用项目设计

1 常用项目设计框架

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

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

2 项目表设计

2.1 表与表之间的关系

2.1.1 一对一

【Java】常用项目设计
一个商品对应一个商品描述,一个商品描述对应一个商品。
通常将一个表中的主键充当另一个表中的外键。(pk--主键,fk--外键)

2.1.2 一对多

【Java】常用项目设计
一个商品分类中对应多个商品,但一个商品却只属于一个商品分类。(当以某个对象为主体时,则以此对象为参考点。在以商品为参考点时,此时已经选中了这个商品,即有且只有一个,只对应一个商品分类。)

2.1.3 多对多

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

2.2 导入数据库

导入指令; source 路径/xxx.sql
【Java】常用项目设计
('/'和'\' 都一样,在导入时可以先找到sql文件,先输入指令 source+空格 然后将文件直接拉入,再回车即可,也可通过其他工具导入。)
【Java】常用项目设计

2.3 IDEA配置环境

2.3.1 JDK配置

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

【Java】常用项目设计

【Java】常用项目设计

3.3.1.2 在path上新建该变量

【Java】常用项目设计

3.3.1.3 检测JDK安装是否成功

输入指令:java -version
【Java】常用项目设计

2.3.2 IDEA常用配置

2.3.2.1 安装Lombok插件

【Java】常用项目设计

2.3.2.2 设置习惯的快捷键

【Java】常用项目设计

2.3.2.3 修改鼠标缩放

【Java】常用项目设计

2.3.2.4 智能提示

【Java】常用项目设计

2.3.2.5 构建项目

【Java】常用项目设计

2.3.2.6 配置maven

【Java】常用项目设计

2.3.2.7 配置自动保存

【Java】常用项目设计

2.3.2.8 修改自动提示

【Java】常用项目设计

2.3.2.9 设置编码

【Java】常用项目设计

2.3.3 设置背景颜色

【Java】常用项目设计

3 SpringBoot高级应用

3.1 创建SpringBoot项目

【Java】常用项目设计
【Java】常用项目设计
【Java】常用项目设计
【Java】常用项目设计

3.2 关于Maven说明

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

3.2.1 关于Maven坐标的说明

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

        <dependency>

<groupId>org.springframework.boot 公司域名倒写</groupId>

<artifactId>spring-boot-starter-web 项目名称</artifactId>

<version>XX 版本号</version>

</dependency>

jar包位置:
C:\The_four_step\maven\rep\org\springframework\boot\spring-boot-starter-web\2.4.1
【Java】常用项目设计

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

在maven项目中如果A依赖B,B依赖C,当程序添加依赖A时,则同样也添加了B,C依赖文件。
【Java】常用项目设计

maven依赖的原理:
【Java】常用项目设计
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个十六进制数。
【Java】常用项目设计
常识:
1.如果数据相同,问: hash值是否相同? 值是相同的.
2.问 一个数据10K,一个数据1G 问 运算速度如何? 一样快(约等于)

数据传递的流程:
【Java】常用项目设计

3.4 SpringBoot POM.xml文件

3.4.1 maven在idea中展示的名称

该名称默认为项目名。
【Java】常用项目设计

3.4.2 maven打包方式

【Java】常用项目设计
【Java】常用项目设计
1 一般项目需要打包时,会先执行clean指令,表示清除 缓存,清除一些不需要但还存在在缓存中的数据。
2 然后再compile 重新编译。
3 install 项目打包
【Java】常用项目设计
打包后,会出现一个打包的jar包文件,即是我们需要的打包文件;如果没有出现,刷新下。

3.4.3 jar包文件运行测试

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

3.5 SpringBoot POM.xml文件-2

【Java】常用项目设计
【Java】常用项目设计

3.6 SpringBoot启动流程

【Java】常用项目设计
但项目启动时,会找到main入口,对@SpringBootApplication注解进行解析。
【Java】常用项目设计
ctr+鼠标右键 点击此注解
【Java】常用项目设计

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中的注解

【Java】常用项目设计
通过注解得知:主启动类本身也是一个配置类
【Java】常用项目设计

3.6.4 @EnableAutoConfiguaration

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

以上是 【Java】常用项目设计 的全部内容, 来源链接: utcz.com/a/87724.html

回到顶部